本文介紹STM8L051F3的TIM2相關知識。內容分為以下幾部分:
- TIM4簡介
- TIM4基本定時
1、 TIM4簡介
本文主要介紹STM8L051F3的TIM4,TIM4是基本定時器,由一個8位的自動重裝載的向上計數器和一個可編程預分頻器組成,功能簡單,一般用于基本計時,定時器溢出時可產生一個定時器溢出中斷,TIM4的板塊圖如下所示:
TIM4的主要性能如下:
- 8位自動重裝載向上計數器
- 4位可編程預分頻器
- 中斷產生:
- 計數器更新:計數器溢出
- 觸發器輸入
- DMA請求產生:
- 計數器更新:計數器溢出
TIM4是8位基本的基本定時器,時鐘采用的是系統時鐘。
2、 TIM4基本定時
2.1 TIM4定時器配置
本小節介紹如何配置TIM4每1ms更新(中斷)一次,累計500次(500ms)則對LED1的狀態進行取反。使用的例程:STM8L051F3_07_TIM4。TIM4配置步驟如下:
1)使能TIM4外設時鐘
2)TIM4基本配置:時鐘16分頻、周期125(定時1ms)
3)清除TIM4更新標志位
4)使能更新中斷
5)使能總中斷
6)使能TIM4
2.2 例程介紹
TIM4的配置在tim4.c文件中實現:
void TIM4_Config ( void**)**
{
/* TIM4配置:
- TIM4時鐘為系統時鐘,也就是HSI/8 = 2MHz,配置每1ms更新一次應如下設置
2M / (16 * 125) = 1000Hz = 1ms;16為預分頻值,125為周期值
*/
/* 使能 TIM4 C時鐘 */
CLK_PeripheralClockConfig ( CLK_Peripheral_TIM4**,** ENABLE**);**
/* Time4基本配置 */
TIM4_TimeBaseInit ( TIM4_Prescaler_16 , ( 125 - 1**));**
/* 清除TIM4更新標志位 */
TIM4_ClearFlag ( TIM4_FLAG_Update**);**
/* 使能更新中斷 */
TIM4_ITConfig ( TIM4_IT_Update**,** ENABLE**);**
/* 使能總中斷 */
enableInterrupts**();**
/* 使能 TIM4 */
TIM4_Cmd ( ENABLE**);**
}
中斷函數在stm8l15x_it.c文件下實現(Counts在main.c文件定義,stm8l15x_it.c文件引用):
INTERRUPT_HANDLER ( TIM4_UPD_OVF_TRG_IRQHandler , 25**)**
{
/* In order to detect unexpected events during development, it is recommended to set a breakpoint on the following instruction. */
/* 計數值加一 */
Counts**++;**
/* 清除中斷標志位 */
TIM4_ClearITPendingBit ( TIM4_IT_Update**);**
}
主函數如下所示:
void main ( void**)**
{
LED_Init**();** //初始化LED
TIM4_Config (); //TIM4配置
while ( 1**)**
{
if ( Counts == 500**)**
{
GPIO_ToggleBits **(** LED1_GPIO_PORT**,** LED1_GPIO_PINS**);** Counts **=** 0**;**
}
}
}
使用ST-LINK把程序下載到開發板中,可以看到LED1閃爍,頻率2Hz。
-
計數器
+關注
關注
32文章
2256瀏覽量
94478 -
定時器
+關注
關注
23文章
3246瀏覽量
114721 -
stm8l051f3
+關注
關注
0文章
4瀏覽量
2253
發布評論請先 登錄
相關推薦
評論