因為discovery 板子上有外接crystal,為了讓之後讓clock可以固定,所以先就設定了RCC,輸入為external crystal
接著設定tim2的clock source為internal timer
clocks configuration的設定如下
目前是設1秒為1次的中斷,所以pre-scler先設47999,counter為999: 這個意思是48M/(47999+1)/(999+1) = 1HZ
這邊要值得注意一下timer2 是使用在APB1 timer的clock source
最後把中斷打開
記得先將上一個實驗TOGGLE的CODE先拿掉,然後在下面幾個地方加入程式片斷,大概就可以看到LED燈一閃一閃了
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim2);
/* USER CODE END 2 */
/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15);
}
/* USER CODE END 4 */
因為有你這篇 我TIMER終於活了~ 非常感謝
回覆刪除