你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32全桥PWM问题

[复制链接]
atz2000 提问时间:2017-5-3 09:58 /
STM32单片机会产生6路PWM信号,全桥电路一般采用上半桥PWM调制,下半桥ON/OFF的半调制方式;

问题:6路PWM信号是如何实现半调制方式的?
收藏 2 评论8 发布时间:2017-5-3 09:58

举报

8个回答
atz2000 回答时间:2017-5-3 10:49:00
没有人知道吗?高级定时器的6路输出都是互补输出的,如何变成一个PWM输出,一个off或者一个off,一个ON?
无薪税绵 回答时间:2017-5-15 08:14:43
这个真不懂,等待大神解答。
dear祝子 回答时间:2017-5-15 09:01:00
略知一二,先给你说说原理吧,你在PWM模式下端口处于复用模式,也就是GPIO_Mode_AF,你要是下桥为P普通的IO模式呢,那就要改成GPIO模式,也就是GPIO_Mode_OUT模式。明白了吧!再看code!
//打开下桥,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

评分

参与人数 1ST金币 +5 收起 理由
zero99 + 5

查看全部评分

dapan100 回答时间:2017-5-15 10:02:32
TIM截图20170515100118.png 大概可是这种功能

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

chen000000009 回答时间:2017-5-15 12:30:23
不懂,看看
cldym 回答时间:2017-5-15 15:16:42
这个真不懂,等待大神解答
dear祝子 回答时间:2017-5-15 16:06:57
dapan100 发表于 2017-5-15 10:02
大概可是这种功能

正解。
zhjb1 回答时间:2017-5-16 06:26:34
现在STM系列的都是采用官方已给的宏来编程,是不好懂。但可以对应着宏的运行实测接过来慢慢理解。最好有示波器对应着来看。就像 底板 和 5楼 的几乎是详解了。改变里面的代码,测试输出信号看看有什么不同,慢慢就明白了。OK

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版