定时器开发基础及PWM波的生成
1. 配置
2. 函数定义
-
在stm32f4xx_hal_gpio.c中找到
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
-
复制其中的
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
-
到main.c中进行重定义:
1
2
3
4
5
6
7void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM1)
{
HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_9);
}
} -
其中小灯闪的实践间隔为
-
到tim.c中找到
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
-
到main()函数中添加
HAL_TIM_Base_Start_IT(&htim1);
来打开对应时钟,此时中断实践可使用
用于定时触发某些任务
3. PWM波的生成
-
在main()函数中添加
HAL_TIM_PWM_Start(&htim8,TIM_CHANNEL_1);
打开对应时钟对应通道的PWM输出 -
在while(1)中添加
__HAL_TIM_SET_COMPARE(&htim8, TIM_CHANNEL_1, 420);
来控制PWM的占空比,占空比等于
这是跟随B站小蜜蜂老师的干货铺的【小蜜蜂笔记】基于STM32CubeMX的嵌入式开发基础教程所写的学习笔记。
此教程以应用为主,辅以简单的原理讲解,能够快速的上手STM32的开发。