STM32单片机会产生6路PWM信号,全桥电路一般采用上半桥PWM调制,下半桥ON/OFF的半调制方式; 问题:6路PWM信号是如何实现半调制方式的?
//打开下桥,An_Port,An_Pin这是宏定义的,对应你自己的IO就行了
//其实就是将此端口改为GPIO_Mode_OUT模式
void open_An(void)
{
set_pin(An_Port, An_Pin);
temp = (An_Port->MODER & (~(GPIO_MODER_MODER0 << (An_Pin_Source * 2))));
An_Port->MODER = ( temp | (GPIO_Mode_OUT << (An_Pin_Source * 2)));
}
//关闭下桥
void close_An(void)
{
clr_pin(An_Port, An_Pin);
temp = (An_Port->MODER & (~(GPIO_MODER_MODER0 << (An_Pin_Source * 2))));
An_Port->MODER = ( temp | (GPIO_Mode_OUT << (An_Pin_Source * 2)));
}
//打开下桥PWM 这里将IO设置为GPIO_Mode_AF模式
void pwm_An(void)
{
temp = (An_Port->MODER & (~(GPIO_MODER_MODER0 << (An_Pin_Source * 2))));
An_Port->MODER = ( temp | (GPIO_Mode_AF << (An_Pin_Source * 2)));
}
仔细一看,很简单吧!不值是不是你要的答案
加上我的宏定义吧,
#define An_Port GPIO_Port(B)
#define An_Pin GPIO_Pin(13)
#define An_Pin_Source 13
评分
查看全部评分
评分
查看全部评分
正解。
评分
查看全部评分