ADC

rt_thread_delay()和ADC采样之间的冲突

发布于 2016-11-15 16:28:00
我用的是STM32f042 之前编写的AD底层驱动经过长时间使用没有问题,可是加上RTT后,在我的AD采样线程中不能够使用rt_thread_delay()来进行任务切换,一旦使用了这个延时函数第一次采样没有问题,等到下次采样的时候就会卡在while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));这里。

当我调用 rt_thread_suspend(result1); rt_schedule();来挂起线程自身并用另一个线程解挂时 rt_thread_resume(result1);就可以正常工作,很是奇怪,请大家帮帮忙,谢谢。
QQ图片20161115162421.png
无标题.png

查看更多

关注者
0
被浏览
1.8k
3 个回答
bernard
bernard 2016-11-15
rt_thread_delay()是用来做任务切换的?
Nevermore
Nevermore 2016-11-15
是的,我想用rt_thread_delay()来切换线程,其他线程都可以正常运行,一旦延时结束回到本线程就会卡死在标志位的等待上。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览