1 外设配置
选择外部25M晶振
选择定时器3通道1为PWM发生器
2 时钟配置
APB1总线时钟 属于低速时钟,低速外设挂在在这条总线上。
APB2总线时钟 属于高速时钟,高速外设挂载在这条总线上。
定时器3连接在APB1,时钟为45MHz,900-1预分频,1000-1计数周期,所以频率为90000000/900/1000=100Hz
占空比为500/1000=50%.
在while(1)前面加上:HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1);就可以了。
接下来测试一下STM32的定时器内部定时中断的实验。
添加一个回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim->Instance == htim2.Instance)
{
/* Toggle LED */
BSP_LED_Toggle(LED4);
}
}
然后就可以让LED不停闪烁了。