間隔一秒亮滅,仿真時注意要在__HAL_RCC_TIM2_CLK_ENABLE()之前使能TIM1的時鐘,否則特別慢,可能是Proteus的BUG吧,在此感謝51hei論壇的happy87,是他的無私奉獻才在這一塊有所突破,非常感謝!這里是happy87的原貼:http://www.zg4o1577.cn/bbs/dpj-131825-1.html
STM32單片機定時器Proteus仿真原理圖如下(仿真工程文件可到本帖附件中下載)
自己僅在兩個地方加了代碼,下面加粗的即是:
1、main函數里面
- int main(void)
- {
- HAL_Init();
- SystemClock_Config();
- __HAL_RCC_TIM1_CLK_ENABLE();//使能TIM1時鐘,實際不需要,僅是Protues的BUG,可以放置在調用__HAL_RCC_TIM2_CLK_ENABLE()之前的任意位置
- MX_GPIO_Init();
- MX_TIM2_Init();
-
- HAL_TIM_Base_Start_IT(&htim2);
- while (1)
- {
- }
- }
復制代碼
2、重寫回調函數
- void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef*htim)
- {
- if(htim == &htim2)
- HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);//端口翻轉
- }
復制代碼
全部資料51hei下載地址:
TIME-LED.rar
(4.02 MB, 下載次數: 81)
2018-8-16 19:31 上傳
點擊文件名下載附件
|