深入了解STM32定时器原理,掌握脉宽调制pwm生成方法。
文章目录
一、使用STM32F103的 Tim2~Tim5其一定时器的某一个通道pin(与GPIOx管脚复用,见下图),连接一个LED,用定时器计数方式,控制LED以2s的频率周期性地亮-灭。
1.打开STM32CubeMX,创建工程
进入工程后,配置rcc
配置sys
PA0口选为GPIO-OUTPUT
配置定时器
如图所示,定时器2配置:依次点击位置2,选中定时器2;位置3,配置定时器2的时钟源为内部时钟;位置4,分频系数为71;位置5,向上计数模式,计数周期为5000,使能自动重载模式。
配置中断,并生成定时器优先级代码
配置usart
配置时钟
点击project manager
打开生成的keil文件中的main.c
添加启动定时器代码
HAL_TIM_Base_Start_IT(&htim2);
HAL_TIM_Base_Start_IT(&htim3);
在main.c中定义STM32需要给上位机发送的消息
uint8_t hello[20]="hello windows!\r\n";
添加中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static uint32_t time_cnt =0;
static uint32_t time_cnt3 =0;
if(htim->Instance == TIM2)
{
if(++time_cnt >= 400