完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
没有人知道吗?高级定时器的6路输出都是互补输出的,如何变成一个PWM输出,一个off或者一个off,一个ON?
|
|
|
|
这个真不懂,等待大神解答。
|
|
|
|
略知一二,先给你说说原理吧,你在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 |
|
|
|
大概可是这种功能
|
|
|
|
不懂,看看
|
|
|
|
这个真不懂,等待大神解答
|
|
|
|
|
|
|
|
现在STM系列的都是采用官方已给的宏来编程,是不好懂。但可以对应着宏的运行实测接过来慢慢理解。最好有示波器对应着来看。就像 底板 和 5楼 的几乎是详解了。改变里面的代码,测试输出信号看看有什么不同,慢慢就明白了。OK
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
969 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
954 浏览 2 评论
2066 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1162 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1587 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 06:08 , Processed in 0.505374 second(s), Total 56, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号