本例程是使用STM32CubeMX 6.5版本生成带代码
测试单片机型号:STM32F103VET6
- 时钟设置72MHZ
- - 使用定时器1的通道1 和 通道2 配置PWM互补输出
- 分频72分频(定时器频率为 72MHZ / 72 = 1MHZ),计数周期1000,也就是计数到1000溢出,所以,PWM频率就是1KHZ,周期是1ms (1s / 1000)
- PWM占空比设置
注意: 红框是占空比设置,也就是比较器寄存器和计数器寄存器的数值所比较,相同后翻转引脚(大致就是这个意思)其它不要动
最后生成代码,生成的代码在 main 函数中添加一下几个函数,即可成功运行
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
MX_TIM1_Init();
MX_ADC1_Init();
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_2);
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,200);
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_2,800);
printf("start up\n");
while (1)
{
}
}
实际照片
|