<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 使用STM32的SysTick實(shí)現精準延遲

使用STM32的SysTick實(shí)現精準延遲

作者: 時(shí)間:2016-11-21 來(lái)源:網(wǎng)絡(luò ) 收藏
使用SysTick的普通計數模式對延遲進(jìn)行管理.

static u8 fac_us=0;//us延時(shí)倍乘數
static u16 fac_ms=0;//ms延時(shí)倍乘數

本文引用地址:http://dyxdggzs.com/article/201611/319320.htm

//初始化延遲函數
void delay_init(u8 SYSCLK)
{
SysTick->CTRL&=0xfffffffb; //bit2清空,選擇外部時(shí)鐘*/
fac_us = SYSCLK/8;
fac_ms = (u16)fac_us*1000;
}


//延時(shí)nms

//SysTick->LOAD為24位寄存器,所以,最大延時(shí)為:
//nms<=0xffffff*8*1000/SYSCLK
//對72M條件下,nms<=1864
void delay_ms(u16 nms)
{
u32 temp;
SysTick->LOAD=(u32)nms*fac_ms; // 當倒數至零時(shí),將被重裝載的值 */
SysTick->VAL =0x00; // VAL寄存器中存放著(zhù)當前倒計數的值 */
SysTick->CTRL=0x01 ; // Systick定時(shí)器的使能位 開(kāi)始計時(shí) */
do
{
temp=SysTick->CTRL;
}

while(temp&0x01&&!(temp&(1<<16))); //首先檢查定時(shí)器使能位是否為1
//Systick定時(shí)器倒數至零后 位16被置1 被讀取后該位置0
// 等待時(shí)間到達或定時(shí)器關(guān)閉 */
SysTick->CTRL=0x00; //關(guān)閉計數器
SysTick->VAL =0X00; //清空計數器
}


//延時(shí)nus
//nus為要延時(shí)的us數.
void delay_us(u32 nus)
{
u32 temp;
SysTick->LOAD=nus*fac_us; //時(shí)間加載
SysTick->VAL=0x00; //清空計數器
SysTick->CTRL=0x01 ; //開(kāi)始倒數
do
{
temp=SysTick->CTRL;
}
while(temp&0x01&&!(temp&(1<<16)));//等待時(shí)間到達
SysTick->CTRL=0x00; //關(guān)閉計數器
SysTick->VAL =0X00; //清空計數器

}



關(guān)鍵詞: STM32SysTick精準延

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>