久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13150|回復: 1
打印 上一主題 下一主題
收起左側

stm32的精確延時利用系統滴答systick

[復制鏈接]
跳轉到指定樓層
樓主
ID:59583 發表于 2014-3-23 00:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
利用系統滴答定時器來實現精確延時,需要以下五步:
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;         //清空計數器        
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:288629 發表于 2021-3-8 20:57 | 只看該作者
延時的精準度很重要!感謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产激情视频 | 91精品国产成人观看 | 亚洲狠狠 | 毛片www| 欧美激情成人 | 91福利在线观看 | 日韩午夜片 | 大乳女喂男人吃奶 | 五月婷综合 | 国产伦精品一区二区三区视频我 | 欧美午夜在线 | 欧美精品一区二区三区四区 | 一区二区三区网站 | 国产对白videos麻豆高潮 | 亚洲伊人影院 | 成人免费在线视频观看 | 三级黄色网址 | 日韩一区中文字幕 | 国产高清网站 | 国产精品二 | 国产传媒一区二区 | 亚洲成人欧美 | 欧美日韩国 | 中文字幕永久在线 | 美女无遮挡网站 | 毛片中文字幕 | 日韩精品视频免费播放 | 欧美a级成人淫片免费看 | 狠狠干2021 | 婷婷免费视频 | 日韩欧美国产综合 | 精品国产毛片 | 天天干夜夜爽 | 国产色自拍 | 成人视屏在线观看 | 中国极品少妇xxxx做受 | 能看的毛片 | 福利视频1000 | 国产永久视频 | 在线观看网址你懂的 | 97久久精品人人澡人人爽 |