基于STM32F407 cubeMX 的 RT-Thread 定时器
这几天在做一个刷IC卡的程序,用到RTT和定时器。
不知道怎么回事,用基本库函数写完裸机代码,也正常跑起来,加入RTT,也可以正常跑起来(此时,RTT获得CPU使用权,但是由于我写的代码是基于定时器的,也就是一个定时器一个任务,RTT只是做了一个LED灯,所以就释放了很大部分的CPU资源)。
但是—用cubeMX生成代码,添加RTT,再写一遍定时器就不正常了,后来想明白了,所谓的操作系统,就是控制CPU使用权,所以定时器中断获取CPU资源会很少的。定时器此时就会一卡一卡的进入中断,导致定时中断不正常。后来,使用RTT自带的定时器就好了。
所以,给大家个建议:用操作系统就用操作系统的定时器,一般情况下不要使用片上定时器外设。
个人见解,有不对的敬请原谅,欢迎指导!谢谢 !