完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
刚开始学习FreeRTOS,用的是STM32F103RCT6,目前创建了三个任务,运行指示灯、按键、显示。其中显示任务里是暂时还没有具体的代码,按键任务准备使用队列传递按键值。现在的问题是这样的,如果我不创建按键队列,则运行指示灯任务可以正常运行,每0.5s闪烁一次。但是如果创建按键队列的话,任务运行就不正常了(队列可以创建成功),仿真发现指针一直停留在这个函数prvCheckTasksWaitingTermination(),或者是这个函数的前一级函数,即static portTASK_FUNCTION( prvIdleTask, pvParameters );这个好像是空闲任务吧?另外补充一下,复位后每个任务后执行一遍
附件是代码,请各位前辈给指导一下。看看问题出在什么地方。 STM32F103RCT6_FreeRTOS.zip (8.37 MB ) |
|
相关推荐
6个回答
|
|
问题已经定位了。但是不明白为什么。
在我的任务函数里有这么一句 err = xQueueSend(Key_Queue,&KeyBuf,portMAX_DELAY); //发送队列,一直等待 如果有消息就发送,并且是一直等待。但是我还没有写消息队列接收的函数。但是依然有一个问题不明白。这种带任务切换的等待应该不会有类似裸跑的那种死循环吧,就算一直等待也应该有任务切换吧?为什么别的任务执行不了呢?我设置的按键任务的优先级是比运行指示灯任务优先级要低的。 |
|
|
|
|
|
你的按键任务优先级要高于指示灯
|
|
|
|
谢谢,可是为什么呢?
|
|
|
|
数字越小,优先级越低,感觉你弄反了。
|
|
|
|
数字越小,优先级越低。这个我是知道的。但是不管优先级怎么样,按键任务的while(1)里面是有延时的,10ms的时间,这个时间足够去执行别的任务了吧。可是总是在执行空闲任务。这一点儿我不明白。
有时间的话能不能跑一下我的代码给看看问题所在啊。 |
|
|
|
只有小组成员才能发言,加入小组>>
791 浏览 0 评论
1151 浏览 1 评论
2527 浏览 5 评论
2860 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2710 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1070浏览 3评论
193浏览 2评论
455浏览 2评论
368浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:15 , Processed in 0.991252 second(s), Total 60, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号