久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
stm32的精確延時利用系統滴答systick
[打印本頁]
作者:
9geren
時間:
2014-3-23 00:35
標題:
stm32的精確延時利用系統滴答systick
利用系統滴答定時器來實現精確延時,需要以下五步:
1、設置滴答定時器的時鐘,通過設置其控制寄存器,選擇外部時鐘,即為系統時鐘的八分之一,若系統時鐘為72M,則滴答定時器時鐘為9M。即定時一秒需要9M個時鐘周期。
2、設置滴答定時器的重裝載寄存器的數值,即需要延時的時鐘周期數。如:若需要延時20微秒,則重裝載值為20*9.若要延時20毫秒,則設置重裝載值為20*9000.
3、清空滴答定時器當前值寄存器的值,使之為零,以便使能計數時能夠從設定值開始倒數計時。
4、設置滴答定時器的控制寄存器,開始倒計數。
5、查詢滴答定時器的狀態位,定時時間到,關閉定時器,清空定時器當前值。
void delay_init(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb;//控制寄存器,選擇外部時鐘即系統時鐘的八分之一(HCLK/8;72M/8=9M)
fac_us=SYSCLK/8; //定義全局變量,即延時一微秒所需的的時鐘周期數(72/8=9,單位為微妙)
fac_ms=(u16)fac_us*1000; //一毫秒所需的時鐘周期數(9000)
}
void Delay_us(u32 nus)
{
u32 temp;
SysTick->LOAD=nus*fac_us; //時間加載(即延時多少個時鐘周期)
SysTick->VAL=0x00; //清空計數器
SysTick->CTRL=0x01 ; //開始倒數
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待時間到達
SysTick->CTRL=0x00; //關閉計數器
SysTick->VAL =0X00; //清空計數器
}
或者
void Delay_us(u32 Nus)
{
SysTick->LOAD=Nus*9; //時間加載 72M主頻
SysTick->CTRL|=0x01; //開始倒數
while(!(SysTick->CTRL&(1<<16))); //等待時間到達
SysTick->CTRL=0X00000000; //關閉計數器
SysTick->VAL=0X00000000; //清空計數器
}
作者:
wjcxy3166
時間:
2021-3-8 20:57
延時的精準度很重要!感謝
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲国产一区视频
|
天天草天天干天天
|
91免费在线视频
|
综合五月
|
午夜在线小视频
|
久久神马
|
黄色精品
|
三级成人在线
|
亚洲国产成人精品女人久久久
|
成人免费视频网站在线看
|
水蜜桃久久夜色精品一区
|
国产精品一区二区三区在线
|
91 视频网站
|
毛片网在线观看
|
日韩精品一区二区三区第95
|
妞干网视频
|
中文字幕乱码一区二区三区
|
亚洲精品久久久久久首妖
|
色婷婷综合网站
|
欧美www在线观看
|
国产视频福利一区
|
99国产精品99久久久久久
|
亚洲国产一区二区三区在线观看
|
一区二区三区在线免费观看视频
|
亚洲视频在线看
|
欧美午夜精品久久久久久浪潮
|
欧美一区二区三区在线看
|
国产精品久久久久久久久久久久
|
国产aaaaav久久久一区二区
|
国产一区h
|
久久久久久免费精品一区二区三区
|
久免费视频
|
av中文字幕在线播放
|
国产高清av免费观看
|
成人久久18免费网站图片
|
超碰97人人人人人蜜桃
|
精品无码久久久久久国产
|
久久久久网站
|
中文字幕国产精品视频
|
国产精品久久久久久久久免费
|
成年网站在线观看
|