sos博 发表于 2017-7-6 15:56:56

stm32f412怎么弄微妙us的延时函数?

用sysclk吗?怎么弄呢?
我找到了正点原子的f429 HAL例程,好像时间不对,我弄1秒,实际大约1.5秒。


应该怎么弄才对呢?我用stm32CUBE生成的代码,晶振默认用外部16M晶振,SYSCLK是16M。


下面是他的2个函数,只用这2个就够吗?需要添加或者修改别的吗?


sos博 发表于 2017-7-6 17:05:19

一提412是非主流,没人愿意回答啊,其实这个和啥型号没啥关系吧?

wolfgang2015 发表于 2017-7-6 17:16:55

sos博 发表于 2017-7-6 17:05
一提412是非主流,没人愿意回答啊,其实这个和啥型号没啥关系吧?

F412可不是非主流哦。中断那么多、串口也多....

发表于 2017-7-6 17:18:25

如果想精确到us,可以通过tim来进行配置,实现us的计数器。

sos博 发表于 2017-7-6 17:58:42

wolfgang2015 发表于 2017-7-6 17:16
F412可不是非主流哦。中断那么多、串口也多....

我最近一直在玩412,学到dac,发现412竟然没有dac。

黑皮男 发表于 2017-7-6 19:07:26

可以使用定时器,查询和中断两种方式都行

MrJiu 发表于 2017-7-7 09:42:04

us级别的精确延时,肯定是使用硬件查询模式了!!!!不是有一个系统滴答时钟么,可以查询这个来实现!!!!

sos博 发表于 2017-7-7 11:28:21

MrJiu 发表于 2017-7-7 09:42
us级别的精确延时,肯定是使用硬件查询模式了!!!!不是有一个系统滴答时钟么,可以查询这个来实现!!! ...

查询和装载有区别吗?我找的例程一个是导入systick load寄存器自己的值,另一种是不导入,直接读取systick的值来判断过了多长时间。

MrJiu 发表于 2017-7-7 13:54:06

sos博 发表于 2017-7-7 11:28
查询和装载有区别吗?我找的例程一个是导入systick load寄存器自己的值,另一种是不导入,直接读取systic ...

load好像是中断,但是us级别的中断,不太好。。。。。还是查询吧。。。。
页: [1]
查看完整版本: stm32f412怎么弄微妙us的延时函数?