[STM32F0] STM32F 的延时时间 如何 计算 ?

[复制链接]
3004|7
 楼主| ElectronF0 发表于 2016-10-20 15:53 | 显示全部楼层 |阅读模式
见附图,系统时钟是PLL,48MHz。

请教,对于 延时函数static void LED_Delay(__IO uint32_t nCount),
当 nCount= 1,000,000(0x0F 4240)时,延时 时间 如何计算 ?

谢谢 !
无标题1.png


Adu0227 发表于 2016-10-20 16:05 | 显示全部楼层
仿真跑一下就可以了
yklstudent 发表于 2016-10-20 16:34 | 显示全部楼层
精确就用定时器啊,ST内部定时器那么多,睡觉也是浪费了
JobShare 发表于 2016-10-20 16:49 | 显示全部楼层
一个时钟周期的时间是:1/48M = 0.02083us;
通过 仿真 看汇编 代码,知道 一个for循环 的 时钟周期 后,就可以了:时钟周期 * for循环的时钟周期数 * nCount 就是 延时时间了。
734774645 发表于 2016-10-20 22:16 | 显示全部楼层
用定时器里设置个变量,全局的,调用一个延时函数,该延时函数读取定时器里的变量当前值,然后做差,确定延时到后的变量值是多少,然后一直等待达到那个变量。
734774645 发表于 2016-10-20 22:17 | 显示全部楼层
734774645 发表于 2016-10-20 22:16
用定时器里设置个变量,全局的,调用一个延时函数,该延时函数读取定时器里的变量当前值,然后做差,确定延 ...

对于计算差值实际上只需要一次,这里可以用do while(0)的形式实现。
 楼主| ElectronF0 发表于 2016-10-23 00:03 | 显示全部楼层
谢谢各位 学习了
Soraka 发表于 2016-10-23 20:56 | 显示全部楼层
用定时器做精确延时
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:永远的助理工程师

273

主题

1345

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部