请教一下,stm32f051的系统时钟做延时时,一旦将精度提高到1us,程序就会一直卡在系统时钟中断里

2019-10-15 02:58发布

请教一下,stm32f051的系统时钟做延时时,一旦将精度提高到1us,程序就会一直卡在系统时钟中断里,我把精度变成10us后就可以用了,这是怎么回事。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
charlefu
1楼-- · 2019-10-15 06:43
中断频率太高了吧
止天
2楼-- · 2019-10-15 11:27
charlefu 发表于 2017-2-13 15:44
这是当然的,中断相应和中断切换和中断处理都是需要时间的。1us的话当然只有中断能跑。

那我要用到1us延时的话该怎么做,只能用通用定时器来做吗,感觉也会出这种问题
charlefu
3楼-- · 2019-10-15 14:41
charlefu 发表于 2017-2-13 16:17
精确到1us间隔的延时基本没法用软件来做,你究竟有什么需求要这么精确的延时?真的要实现的话一般都上fpga ...

我要在模拟iic的时序是需要微秒级的延时
jialiyasi
4楼-- · 2019-10-15 18:33
charlefu 发表于 2017-2-13 16:58
iic?这种一般都是用循环来做的。比如while(i < 100) { ++i);  根据cpu的频率调整循环的长度,用示波器看 ...

好吧,不纠结了,谢谢你了

一周热门 更多>