滴答定時器簡介:
系統定時器SysTick是屬於CM3內核中的一個外設,相關寄存器內嵌在NVIC中,所有基於CM3內核的單片機都具有這個系統定時器,這使得軟件(OS)在CM3單片機可以十分容易的移植。SysTick一般用於操作系統的產生時基功能,以維持操作系統的“心跳”。
問題描述:利用stm32自帶的滴答定時器,也就是systick定時器,實現1s鍾定時,滴答定時器10ms中斷一次
問題分析:滴答定時器定時10ms,定時10ms後讓一個變量自增。當這個變量增加了100次後,不就是1s了嘛。
編程:滴答定時器定時10ms
根據滴答定時器的寄存器,設置時鐘源和重裝載數即可
void SysTickInit (void)
{
SysTick_SetReload(90000);
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
SysTick_CounterCmd(SysTick_Counter_Enable);
SysTick_ITConfig(ENABLE);
}
中斷處理
void SysTickHandler(void)
{
SysClock++;
}
編程:定時1s,串口發送aa
void systick_send(void)
{
static int clockDelay;
if (SysClock-clockDelay>100)
{
HostPutChar(0xaa);
clockDelay=SysClock;
}
}