前言:
最近在調試STM32L152芯片的定時器功能,本文總結下STM32L152芯片基本定時器的使用方法。
硬件平臺:STM32L152
軟件平臺:keil v5+cubeMX
函數庫:HAL庫
基本定時器使用方法
下面簡單講述一下STM32L152的定時器使用步驟。
1.使用CubeMX對定時器進行配置,如定時器預分頻值,計數值,定時器的觸發方式等。
2.下面詳細解析相關的代碼;
TIM_HandleTypeDef htim3;
void TIM3_Init(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig;
htim3.Instance = TIM3;
htim3.Init.Prescaler = 32000-1;//預分頻值,本例使用外部8MHz,倍頻后是32M,32000分頻后為1kHz,預分頻值為32000-1,計算公式為:CK_INT/(TIM_Perscaler+1)
htim3.Init.CounterMode = TIM_COUNTERMODE_UP; //上升計數
htim3.Init.Period = 1000-1;//計數值,1kHz即計數1000為1s,本例定時1s,計數值為1000-1
htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; //設置定時器時鐘為內部時鐘
if (HAL_TIM_ConfigClockSource(&htim3, &sClockSourceConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim3, &sMasterConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
HAL_TIM_Base_Start(&htim3);//啟動定時器
HAL_TIM_Base_Start_IT(&htim3);//啟動定時器中斷
}
定時器的時鐘使能和中斷優先級在文件stm32l1xx_hal_msp.c中定義;
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
{
if(htim_base->Instance==TIM3)
{
/* USER CODE BEGIN TIM3_MspInit 0 */
/* USER CODE END TIM3_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_TIM3_CLK_ENABLE();
/* TIM3 interrupt Init */
HAL_NVIC_SetPriority(TIM3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(TIM3_IRQn);
/* USER CODE BEGIN TIM3_MspInit 1 */
/* USER CODE END TIM3_MspInit 1 */
}
}
下面是定時器的中斷函數,定時時間到,標志位置位:
void TIM3_IRQHandler(void)
{
HAL_TIM_IRQHandler(&htim3);
TIM3_Flag=SET;
}
在主程序中添加自己定義的事情:
while(1)
{
if(TIM3_Flag==SET)
{
TIM3_Flag=0;//清除標志
//添加自己定義的代碼
。。。
}
}
上一篇:關于STM32運行時程序卡在B.處的解決方法
下一篇:STM32-USART HAL庫接收任意長度數據詳細解析
推薦閱讀
史海拾趣
作為薄膜開關的先驅和專家,EECO Switch公司在該領域擁有超過30年的豐富經驗。公司憑借其精湛的制造工藝和嚴格的品質控制,成功打造出了眾多優質的薄膜開關產品。這些產品廣泛應用于醫療設備、航空電子設備、軍用產品和工業控制等領域,贏得了眾多客戶的信任和好評。
隨著市場競爭的加劇和客戶需求的不斷提高,Etco Inc公司意識到品質管理對于企業發展的重要性。為此,公司投入大量資源加強品質管理體系建設,引進先進的生產設備和檢測儀器,確保產品質量的穩定性和可靠性。同時,Etco還加強了員工培訓和技能提升,提高了員工的品質意識和操作技能。這些舉措使Etco的產品質量得到了顯著提升,贏得了客戶的廣泛贊譽。
進入21世紀后,Etco Inc公司意識到全球化趨勢的不可逆轉。為了拓展國際市場,公司決定實施全球化戰略。首先,公司在美國本土之外建立了多個生產基地和研發中心,以便更好地滿足全球客戶的需求。其次,Etco加強了與國際客戶的合作與交流,積極參與國際展覽和研討會,提高了品牌知名度和影響力。這些舉措使Etco在全球電子連接器市場中的份額不斷攀升。
為了進一步擴大市場份額,CTC公司開始尋求與其他行業的跨界合作。一次與汽車制造商的洽談中,CTC公司提出將自身的電子技術應用于汽車制造中,以提升汽車的性能和智能化水平。雙方經過深入交流,達成了合作意向。這一跨界合作不僅為CTC公司帶來了新的業務領域,也推動了汽車行業的創新發展。
隨著智能能源市場的不斷發展,Econais也積極拓展該領域的應用。通過與能源公司的合作,Econais的Wi-Fi模塊被廣泛應用于智能電網、智能家居和分布式能源管理等領域。這些應用不僅提高了能源利用的效率,也為用戶帶來了更加便捷和舒適的體驗。Econais憑借其在超低功耗和高性能無線產品方面的技術優勢,成功在智能能源市場占據了一席之地。
2014年,Econais宣布推出新一代IEEE802.11b/g/n Wi-Fi模塊——EC19D01。這款模塊是物聯網領域的一次重大突破,它采用了系統級封裝(SiP)技術,實現了世界上最小、最容易集成和最低待機功耗的Wi-Fi模塊。EC19D01的推出,進一步鞏固了Econais在超低功耗物聯網微型Wi-Fi模塊領域的領先地位。
我學的電氣工程及其自動化,準備報個單片機提高班,我的考研有控制理論和電氣工程兩個大專業,電氣工程里面的專業如下080801電機與電器 080802電力系統及其自動化 080803高電壓與絕緣技術 080804電力電子與電力傳動 080805電工理論與新技術 感覺 ...… 查看全部問答∨ |
|
發個軟件bf531 jtag的軟件,有條件幫忙測試一下,順便散點分 是ADI,blackfin533系列的Jtag Flash下載器,窮人用用的. 我是有官方的仿真器,剛好這段時間做個東西,需要操作bf531的jtag口,所以 干脆做了這個小東西玩玩. 有條件的兄弟幫忙測試一下. 好久也沒來,順便散分露個臉: 介紹地址: http://www.fcdpj.c ...… 查看全部問答∨ |
|
我們公司的DCS模塊支持三線制的熱電阻,但我看我們公司現場熱電阻的接線端子有四個,分別為A B C D ,但是別人只接了兩條線,也就是兩個接線端子呀,這是有點不解,不知道是不是忘記少接了一條線啊,我看見還有兩條線備用哈,這樣接是否也能用啊? ...… 查看全部問答∨ |
|