stm32使用PWM时,关闭PWM引脚会出现高电平解决方案
来源:互联网 发布:minecraft 1.8 mac 编辑:程序博客网 时间:2024/05/19 22:04
stm32使用PWM时,关闭PWM引脚会出现高电平解决方案
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
现在使用TIM3来产生PWM波形,并通过软件打开/关闭PWM以实现调制波形。做法是:
打开:TIM_Cmd(TIM3, ENABLE);
关闭:TIM_Cmd(TIM3, DISABLE);
跟踪到TIM_Cmd之后,发现直接操作寄存器就可以了:TIMx->CR1 |= CR1_CEN_Set;
这个问题算解决了。
但是PWM关闭后,管脚电平是高电平,这不是我需要的……需要的是低电平。尝试关闭PWM后,加一行GPIO_ResetBits(GPIOC, GPIO_Pin_6);以把管脚设置为低电平。测试代码:
while(1)
{
ENABLE_PWM();
Delay_ms(10);//延时若干ms
DISABLE_PWM();
GPIO_ResetBits(GPIOC, GPIO_Pin_6);
Delay_ms(10);//延时若干ms
}
打开:TIM_Cmd(TIM3, ENABLE);
关闭:TIM_Cmd(TIM3, DISABLE);
跟踪到TIM_Cmd之后,发现直接操作寄存器就可以了:TIMx->CR1 |= CR1_CEN_Set;
这个问题算解决了。
但是PWM关闭后,管脚电平是高电平,这不是我需要的……需要的是低电平。尝试关闭PWM后,加一行GPIO_ResetBits(GPIOC, GPIO_Pin_6);以把管脚设置为低电平。测试代码:
while(1)
{
ENABLE_PWM();
Delay_ms(10);//延时若干ms
DISABLE_PWM();
GPIO_ResetBits(GPIOC, GPIO_Pin_6);
Delay_ms(10);//延时若干ms
}
用示波器观测了一下,发现PWM关闭期间管脚电平有时是高电平,有时是低电平……查找手册也没找到相关说法。用TIM_OC1Init()把TIM3重新配置一下倒是可以解决,但是速度太慢了。
更为快捷的方式是:通过TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);强制输出低电平解决了,呵呵。
在使用PWM时,在设置为活动电平TIM_ForcedOC3Config(TIM4, TIM_ForcedAction_Active);,成功解决这个问题
快速, 测试, 寄存器, 高电平
阅读全文
0 0
- stm32使用PWM时,关闭PWM引脚会出现高电平解决方案
- stm32使用PWM时,关闭PWM引脚会出现高电平解决方案
- 关于STM32 定时器PWM输出,关闭PWM时,输出引脚电平控制。
- STM32 PWM调制信号关闭后端口电平不确定处理
- stm32普通IO口捕获PWM的高电平
- STM32-如何使用引脚复用功能输出PWM
- STM32 PWM快速开关端口电平问题
- stm32 PWM各通道配置引脚
- STM32 PWM
- STM32 PWM
- STM32 PWM
- STM32 PWM
- STM32 PWM
- stm32 pwm
- stm32 PWM
- STM32 PWM
- stm32 pwm
- STM32,PWM
- Ubuntu17.04 执行add-apt-repository时报错No module named 'softwareproperties'
- 对一个单向链表进行逆序
- 【LeetCode】627、Swap Salary
- Application.StartupPath和System.Environment.CurrentDirectory的区别
- [Arch] False Sharing ?
- stm32使用PWM时,关闭PWM引脚会出现高电平解决方案
- 【头条】为课堂教学插上智慧的翅膀 联想教育行业的探索和实践
- jdk源码解析(三)——OutOfMemory异常的实战
- 【软考之旅】第三章 操作系统
- 看电影
- 数字图像处理 一点点
- Pandas Python读取CSV文件中的某一列
- checked的选中与取消
- jsp使用useBean