你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
配置GPIO口为PWM输出,配置空闲状态下为低电平,即停止PWM输出时为低电平,但实际测试时,停止PWM输出,引脚输出电平却是高电平。
实际输出与配置不一致,这是为什么呢?有什么解决办法?
举报
遇到过很多次。
一般需要确认你的PWM脉冲发完的时刻,如果不知道则需要借助中断。
做法是在发完脉冲后,立即执行一个对应的PWM_STOP,否则CPU会等到一个奇怪的时间才后可能回“零”,这个可能去解决于你的PWM模式以及初始定义2部分设定。
另外这个STOP执行早了,脉冲数不够,执行晚了,输出就有很大的尾巴。
Glenxu 发表于 2024-8-28 10:38 遇到过很多次。</p> <p>一般需要确认你的PWM脉冲发完的时刻,如果不知道则需要借助中断。
[md]对于非互补输出,有个比较简单有效的办法就是直接修改CCR的值,让CCR=0或比ARR还大,具体看你最后需要什么样的电平。
如果是互补输出,建议结合MOE=0和空闲电平的配置来实现。
micropthon开发板试用有吗?
CubeAI如何加载caffe模型
有没有用micropython的小白?
STM32F407 128个点FFT问题请教
st注册邮箱收不到为什么
PWM问题
cubeMX lwip 出错
固件增加烧录报错
求STM32中支持大端的MCU型号
在keil中使用Event Recorder调试STM32F446RET6,中间没有语句的情况下也有1.5us左右的时间,这是什么原因呢
空闲态的电平由OIS/OISn寄存器控制位决定,但空闲电平不对同时对应OC/OCn的有效状态电平。
你现在的操作是直接关闭PWM输出,实质就是不想做PWM输出,对互补通道的输出使能位清零里。此时,
管脚的输出状态取决于GPIO电路,你可以配置上拉或下拉来满足你此刻的需求。
遇到过很多次。
一般需要确认你的PWM脉冲发完的时刻,如果不知道则需要借助中断。
做法是在发完脉冲后,立即执行一个对应的PWM_STOP,否则CPU会等到一个奇怪的时间才后可能回“零”,这个可能去解决于你的PWM模式以及初始定义2部分设定。
另外这个STOP执行早了,脉冲数不够,执行晚了,输出就有很大的尾巴。
[md]对于非互补输出,有个比较简单有效的办法就是直接修改CCR的值,让CCR=0或比ARR还大,具体看你最后需要什么样的电平。
如果是互补输出,建议结合MOE=0和空闲电平的配置来实现。