BearPi Std 板从入门到放弃 - 先天神魂篇(1)(RT-Thread 指令点亮LED)

news2024/11/24 10:53:20

简介

使用 BearPi IOT Std板, 开发板简单信息
主芯片: STM32L431RCT6
串口: Usart1
USER LED : PC13
E53_SC1 扩展板与主板连接: 
I2C : I2C1 (光照强度传感器:BH1750)
LED: PB9

RT-Thread 创建线程

线程的管理方式

在这里插入图片描述

添加用户代码

main.c

#include <board.h>
#include <rtthread.h>
#include <drv_gpio.h>
#ifndef RT_USING_NANO
#include <rtdevice.h>
#endif /* RT_USING_NANO */
#define LED0_PIN    GET_PIN(C, 13)


#define THREAD_PRIORITY         25
#define THREAD_STACK_SIZE       512
#define THREAD_TIMESLICE        5

static rt_thread_t tid1 = RT_NULL;

int main(void)
{
    return 0;
}

static void led_thread_entry(void *parameter)
{
    while (1)
    {
			rt_thread_mdelay(1000);
			rt_pin_write(LED0_PIN, PIN_HIGH);
			rt_thread_mdelay(1000);
			rt_pin_write(LED0_PIN, PIN_LOW);
    }
}

int led_test(void)
{
	/* 引脚初始化 */
	rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
    tid1 = rt_thread_create("led_thread_name", // 线程名称
                            led_thread_entry, RT_NULL, 
                            THREAD_STACK_SIZE,
                            THREAD_PRIORITY, THREAD_TIMESLICE);
    
    
    if (tid1 != RT_NULL)
        rt_thread_startup(tid1); // 启动线程
    return 0;
}

MSH_CMD_EXPORT(led_test, led test desc.);  //导出到 msh 命令列表中

编译和烧录

测试

a. 串口软件中看到如下
b. 输入指令 help
其中led_test 就是我们导出到msh命令列表中的函数名称, led test desc.就是描述信息
在这里插入图片描述
c. list thread 看看当前线程
在这里插入图片描述
d. 输入led_test 执行线程
此时看到灯在闪动了

d. list thread 看有哪些线程运行
在这里插入图片描述
虽然名字显示不全, 但是可以看到, 就是create函数中的第一个参数, 测试也可以将名字设置长些, 修改 rtconfig.h 中的 RT_NAME_MAX 宏定义即可

前言后说

1. MSH_CMD_EXPORT(thread_sample, thread sample); // 导出到 msh 命令列表中
	thread_sample : 指令
	thread sample : 说明

2. 线程的名称;线程名称的最大长度由 rtconfig.h 中定义的 RT_NAME_MAX 宏指定,多余部分会被自动截掉
		#define RT_NAME_MAX 8 // 默认的就8个字节

参考:
RT-Thread 工程创建
RT-Thread 内部 - 线程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1304357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零构建属于自己的GPT系列6:模型本地化部署2(文本生成函数解读、模型本地化部署、文本生成文本网页展示、代码逐行解读)

&#x1f6a9;&#x1f6a9;&#x1f6a9;Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1&#xff1a;数据预处理 从零构建属于自己的GPT系列2&#xff1a;模型训…

adb命令学习记录

1、 adb ( android debug bridge)安卓调试桥&#xff0c;用于完成电脑和手机之间的通信控制。 xcode来完成对于ios设备的操控&#xff0c;前提是有个mac电脑。 安卓系统是基于linux内核来进行开发的。 2、adb的安装: 本身 adb是 android SDK 其中自带的工具&#xff0c;用于完…

山西电力市场日前价格预测【2023-12-09】

1.日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-09&#xff09;山西电力市场全天平均日前电价为366.40元/MWh。其中&#xff0c;最高日前电价为629.26元/MWh&#xff0c;预计出现在08:00。最低日前电价为216.58元/MWh&#xff0c;预…

PySpark大数据处理详细教程

欢迎各位数据爱好者&#xff01;今天&#xff0c;我很高兴与您分享我的最新博客&#xff0c;专注于探索 PySpark DataFrame 的强大功能。无论您是刚入门的数据分析师&#xff0c;还是寻求深入了解大数据技术的专业人士&#xff0c;这里都有丰富的知识和实用的技巧等着您。让我们…

使用工业级以太网交换机,需要注意哪些问题?

企业常用工业级以太网交换机进行网络组网&#xff0c;主要有两种情况。第一种是通过协议转换器将专线转换为以太网交换机&#xff0c;第二种是直接租用裸光纤。具体而言&#xff0c;在三、四层网络选择的三层交换机通常只能配置简单的动态路由协议、简单的策略路由和简单的访问…

如何管理大型网站的抓取预算

优化您的网站&#xff0c;以便 Google 更快地找到您的内容并将您的内容编入索引&#xff0c;这可以帮助您的网站获得更好的知名度和流量。 互联网是一个不断发展的虚拟世界&#xff0c;拥有超过 1 亿个网站。 你认为谷歌可以抓取世界上的每一个网站吗&#xff1f; 即使拥有谷…

【SpringBoot篇】详解基于Redis实现短信登录的操作

文章目录 &#x1f970;前言&#x1f6f8;StringRedisTemplate&#x1f339;使用StringRedisTemplate⭐常用的方法 &#x1f6f8;为什么我们要使用Redis代替Session进行登录操作&#x1f386;具体使用✨编写拦截器✨配置拦截器&#x1f33a;基于Redis实现发送手机验证码操作&am…

DNF 单机联网 搭建教程(附视频)

更多游戏搭建&pvf修改教程请见: DNF教程 注意&#xff1a;请不要将游戏进行商业化&#xff0c;一切后果概不负责。仅供单机&#xff0c;好友之间进行娱乐&#xff01;&#xff01; 注意&#xff1a;请不要将游戏进行商业化&#xff0c;一切后果概不负责。仅供单机&#…

重塑未来工作方式,亚马逊云科技re:Invent推出生成式AI助手Amazon Q

亚马逊云科技在re:Invent 2023宣布推出Amazon Q&#xff0c;这是一种新型生成式AI支持的助手&#xff0c;专门用于满足办公场景需要&#xff0c;可以根据客户业务进行定制。客户可以快速获得复杂问题的相关答案、生成内容并采取行动——所有这些都基于客户自身的信息存储库、代…

区块链的可拓展性研究【03】扩容整理

为什么扩容&#xff1a;在layer1上&#xff0c;交易速度慢&#xff0c;燃料价格高 扩容的目的&#xff1a;在保证去中心化和安全性的前提下&#xff0c;提升交易速度&#xff0c;更快确定交易&#xff0c;提升交易吞吐量&#xff08;提升每秒交易量&#xff09; 目前方案有&…

qt 使用百度在线地图 方法2

使用百度在线地图两个关键点&#xff0c;一是html页面准备&#xff1b;二是qt 与js 语言的交互。 1&#xff0c;html页面的准备&#xff0c;双击页面就可以出现如下效果。 主要代码&#xff1a; <!DOCTYPE html> <html> <head><meta http-equiv"C…

亚马逊云科技开发Amazon Bedrock,使构建和移动就像API调用一样简单

企业希望在各种场景中应用生成式AI&#xff0c;例如提高生产效率&#xff0c;创新用户体验和开启全新工作方式。然而&#xff0c;生成式AI技术正快速发展&#xff0c;每天都有新的服务和创新发生。在日新月异的当下&#xff0c;客户的适应能力至关重要。企业需要能够使用最新、…

详解SVG文件

2023年12月12日&#xff0c;周二下午 目录 什么是SVG文件如何查看SVG文件方法1&#xff1a;使用VSCode的"SVG"插件方法2&#xff1a;使用WPS图片​编辑方法3&#xff1a;通过在线网站进行查看怎么制作自己的SVG文件 什么是SVG文件 SVG 是可缩放矢量图形&#xff08…

3_流量预测综述阅读_Cellular traffic prediction with machine learning: A survey

为了方便学习英语书写&#xff0c;总结的一些话用英语书写 ♥目录♥ 0、文献来源and摘要1、introduction2、prediction problems and datasets2.1 prediction problems2.2 dataset&#xff08;1&#xff09;Telecom Italia 意大利电信 2015&#xff08;2&#xff09;City Cell…

深入理解RBAC权限系统

最近&#xff0c;一位朋友在面试中被问及如何设计一个权限系统。我们注意到目前许多后台管理系统&#xff08;包括一些热门的如若依快速开发平台&#xff09;都采用了RBAC访问控制策略。该策略通过将权限授予角色&#xff0c;然后将角色分配给用户&#xff0c;从而实现对系统资…

仿短视频风格的自适应苹果CMS模板源码

这是一款仿短视频风格的自适应苹果CMS模板源码&#xff0c;设计简洁&#xff0c;适合用于搭建个人视频网站或者短视频分享平台。模板支持响应式布局&#xff0c;演示地 址 runruncode.com/yingshimanhau/19650.html 适配各种屏幕尺寸&#xff0c;功能丰富&#xff0c;用户体验良…

在vue3的js中将一组数据赋值的问题

代码: if (res.data) { myPrizeList.value res.data console.log(myPrizeList.value,myPrizeList.value) const giftList ref() console.log(JSON.parse(JSON.stringify(myPrizeList.val…

【VTK】VTK中的宏定义

很高兴在雪易的CSDN遇见你 【vtkWidgetRepresentation】第九期 vtk中的仿射变换 前言 本文分享VTK中的宏定义&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&#xff01; 你的点赞就是我的…

家用儿童床欧盟CE认证EN716标准

一、标准适用范围 该标准规定了内部长度大于900mm但不超过1400mm的家用童床的安全要求。该安全要求适用于完全组装完毕待用的童床。可以转换成其它产品的童床&#xff08;如&#xff1a;可变产品、游戏床&#xff09;转换后应该符合相关欧洲标准。该标准不适用于提篮、婴儿床和…

Kafka-客户端使用

理解Kafka正确使用方式 Kafka提供了两套客户端API&#xff0c;HighLevel API和LowLevel API。 HighLevel API封装了kafka的运行细节&#xff0c;使用起来比较简单&#xff0c;是企业开发过程中最常用的客户端API。 LowLevel API则需要客户端自己管理Kafka的运行细节&#xf…