782|1

2861

帖子

3

资源

版主

[ ST NUCLEO-U575ZI-Q 测评] RT—Thread 2 创建第一个线程 [复制链接]

创建线程是RT_Thread最基本的操作之一。

1、在man.c主程序下面创建静态线程:

/* defined the LED1 pin: PC7 */
/* defined the LED0 pin: PG2 */

#define LED0_PIN    GET_PIN(G, 2)

#define LED1_PIN    GET_PIN(C, 7)
#define THREAD_PRIORITY         25
#define THREAD_STACK_SIZE       512
#define THREAD_TIMESLICE        5

/* 线程led 的对象和运行时用到的栈 */
static struct rt_thread thread_led;
static rt_uint8_t thread_led_stack[512];

/*  线程led 入口 */
void thread_led_entry(void* parameter)
{
	rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);
	while(1)
	{
		rt_pin_write(LED1_PIN,PIN_HIGH);
		rt_thread_mdelay(500);
		rt_pin_write(LED1_PIN, PIN_LOW);
		rt_thread_mdelay(500);
	}
}

/* 线程LED1 初始化 */
int thread_sample(void)
{
	rt_thread_t threadled_ptr;
	rt_err_t result;
	
	/* 
	* 初始化 线程LED1
	* 线程的入口是 thread_led_entry, 参数是RT_NULLL
	* 线程栈是thread_led_stack
	* 优先级是25,时间片是5 OS Tick
		
	*/
	result = rt_thread_init(&thread_led,
													"thread led",
													thread_led_entry, RT_NULL,
													&thread_led_stack[0], sizeof(thread_led_stack),
														THREAD_PRIORITY-1,THREAD_TIMESLICE);
	/*  启动线程 */
	if(result == RT_EOK) rt_thread_startup(&thread_led);
	return 0;
}

int main(void)
{
    int count = 1;
    /* set LED0 pin mode to output */
    rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
	thread_sample();
    while (count++)
    {
        rt_pin_write(LED0_PIN, PIN_HIGH);
        rt_thread_mdelay(500);
        rt_pin_write(LED0_PIN, PIN_LOW);
        rt_thread_mdelay(500);
    }

    return RT_EOK;
}

编译下载后,可以看到LED3与LED1同时以500ms的频率闪烁。

在终端查看任务,看到led任务在运行中:

image.png  

此帖出自RF/无线论坛

回复

1万

帖子

2854

资源

管理员

测评汇总:免费申请|ST NUCLEO-U575ZI-Q http://bbs.eeworld.com.cn/thread-1228653-1-1.html

此帖出自RF/无线论坛

扫一扫,关注 EEWORLD 微信订阅号

行业资讯、电子趣闻、技术干货、精彩活动……尽可掌握~

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表