Stm32f103c8t6的PB13和PB14能不能同时输出pwm啊,SOS!请求指点怎么配置呀。
可以通过配置STM32F103C8T6的PB13和PB14端口同时输出PWM信号。具体的配置方式是:
在数据手册中查看PB14和PB15在TIM1中的默认复用功能,发现它们不需要设置重定向寄存器。
在代码中删除以下语句:
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_3);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_4);
这样便可以使PB14、PB15和PA8都能够正常输出PWM,但PA11还不能。
在查看参考手册中与PWM产生相关的寄存器和其解释,定位到库函数HAL_TIM_PWM_Start的位置,发现函数体中只发现了TIM_CCxChannelCmd(htim->Instance, Channel, TIM_CCx_ENABLE);
查看TIM_CCxChannelCmd
函数的结构,发现它修改的是通道启停的寄存器。再定位到参考手册中对TIMx_CCERx
寄存器的描述,可以给对应的通道使能打钩可以在示波器上观察到波形输出和消失。
在main函数中添加以下代码:
TIM_CCxChannelCmd(htim1.Instance, TIM_CHANNEL_2, TIM_CCxN_ENABLE);
TIM_CCxChannelCmd(htim1.Instance, TIM_CHANNEL_3, TIM_CCxN_ENABLE);
这样便可以使PB13和PB14端口同时输出PWM信号。
最后可以通过参考手册查看寄存器的值来确认是否配置成功。