简介
使用 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 内部 - 线程



















