<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í)鐘 超簡(jiǎn)易定時(shí)器SysTick

STM32 SysTick 系統時(shí)鐘 超簡(jiǎn)易定時(shí)器SysTick

作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò ) 收藏
/**

* @brief Configures the SysTick. 系統時(shí)鐘配置函數main.c
* @param None
* @retval None
*/
void SysTick_Configuration(void)
{
/* Setup SysTick Timer for 100 msec interrupts */
if (SysTick_Config((SystemCoreClock) / 10))// 1/10s=100ms
{
/* Capture error */
while (1);
}

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

NVIC_SetPriority(SysTick_IRQn, 0x0);
}

/**
* @brief This function handles SysTick Handler. 系統時(shí)鐘中斷函數stm32f10x_it.c
* @param None
* @retval None
*/
void SysTick_Handler(void)
{
/* Generate TIM1 COM event by software */
TIM_GenerateEvent(TIM1, TIM_EventSource_COM);
}

SysTick_Config(SystemFrequency / 10) 函數的形參就是systick重裝定時(shí)器的值。
systck計數頻率為每秒72000000次,所以72000次就是1/10秒,也就是100ms。

SysTick是1個(gè)24bit遞減計數器,通過(guò)對SysTick控制與狀態(tài)寄存器的設置,可選擇HCLK時(shí)鐘(72M)或HCLK的8分頻(9M,缺省是這個(gè))作為SysTick的時(shí)鐘源。
SysTick的重裝寄存器決定了定時(shí)器頻率。

若SysTick的時(shí)鐘源是72M, SystemFrequency = 72000000Hz
所以 SysTick_Config(SystemFrequency / 1000); 就是1ms時(shí)基。
// 1/1000 s=1ms

關(guān)于SysTick校準寄存器的介紹(大多數情況下,我們可以不必理會(huì )它)


校準值寄存器提供了這樣一個(gè)解決方案:它使系統即使在不同的CM3產(chǎn)品上運行,也能產(chǎn)生恒定的SysTick中斷頻率。最簡(jiǎn)單的作法就是:直接把TENMS的值寫(xiě)入重裝載寄存器,這樣一來(lái),只要沒(méi)突破系統極限,就能做到每10ms來(lái)一次 SysTick異常。如果需要其它的SysTick異常周期,則可以根據TENMS的值加以比例計算。只不過(guò),在少數情況下,CM3芯片可能無(wú)法準確地提供TENMS的值(如,CM3的校準輸入信號被拉低),所以為保險起見(jiàn),最好在使用TENMS前檢查器件的參考手冊。
SysTick定時(shí)器除了能服務(wù)于操作系統之外,還能用于其它目的:如作為一個(gè)鬧鈴,用于測量時(shí)間等。要注意的是,當處理器在調試期間被喊停(halt)時(shí),則SysTick定時(shí)器亦將暫停運作。

下面利用 SysTick 產(chǎn)生的 硬件延時(shí)函數 延時(shí) dly_ms 毫秒

/*******************************************************************************
* Function Name : SysTickHandler
* Description :系統時(shí)鐘,一般調教到1MS中斷一次
*******************************************************************************/

void SysTick_Handler(void)
{
if(Timer1)
Timer1--;
}

/********************************************
**函數名:SysTickDelay
**功能:使用系統時(shí)鐘的硬延遲
**注意事項:一般地,不要在中斷中調用本函數,否則會(huì )存在重入問(wèn)題.另外如果屏蔽了全局中斷,則不要使用此函數
********************************************/
volatile u16 Timer1;
void SysTickDelay(u16 dly_ms)
{
Timer1=dly_ms;
while(Timer1);
}



評論


技術(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>