完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我需要用systick将时钟节拍设置成1ms,以便以1ms/次的速率产生一个周期性中断,同时我还需要1us以及1ms的精确延时,这个有没有办法实现啊,延时主要用在dht11传感器读取数据,只要能精确到微秒或是能够读出dht11的数据,即使不太精确也行,求大神指点解决思路
|
|
相关推荐
4个回答
|
|
最简单的方法就是用延时函数。DHT11那几十us延时。
|
|
|
|
系统时钟定时器的周期与驱动的时钟频率和Reload值相关
首先,我们称Systick为“系统时钟定时器”。 系统时钟定时器的周期与驱动的时钟频率和Reload值相关。 驱动系统时钟定时器的时钟源有两个:HCLK或(HCLK/8),通过调用SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK)或SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8)选择。 Reload值表示对时钟源脉冲计数多少次为一个系统时钟周期,如当选择时钟源为(HCLK/8)时,如果HCLK=72MHz,则Reload值为9000时系统时钟周期为1ms。通过调用SysTick_SetReload()设置Reload值。 再举个例子:选择时钟源为(HCLK/8),如果HCLK=36MHz,Reload值为9000时系统时钟周期为2ms,Reload值为4500时系统时钟周期为1ms,Reload值为90000时系统时钟周期为20ms。 |
|
|
|
你的要求都可以实现;
设置变量,用于Systick计数;设置1uS和1mS时间到标志; 在Systick中断例程中将变量增量,达到需要的计数值后设置时间到标志; 常规例程中检测时间到标志,标志有效时复位标志,然后做相应的定时工作。 |
|
|
|
知道了,感谢 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1980 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1836 浏览 3 评论
4416 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1985 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2489 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 17:47 , Processed in 0.569814 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号