STM32 PWM调制信号关闭后端口电平不确定处理
来源:互联网 发布:推广平台源码 编辑:程序博客网 时间:2024/06/05 00:40
简介
在使用STM32的PWM做为调制信号时,遇到开关调制信号关闭后其信号不确定的问题,影响信号的调制,收集了些资料在这归纳整理。
方法
当IO设置成PWM模式以后GPIO_ResetBits等设置语句就不管用了,如果不考虑时间点,调用TIM_CtrlPWMOutputs(TIMx,DISABLE);或TIM_Cmd(TIMx,DISABLE);定会产生关闭PWM后端口的电平不确定的情况。有2种办法可以解决:
1、如果使用TIM_CtrlPWMOutputs(TIMx,DISABLE);或TIM_Cmd(TIMx,DISABLE);应该在需要关闭时,先开放更新中断,然后在更新中断中调用其中一个函数,这样才能保证关闭的动作与PWM输出周期同步;
2、如果不使用中断,可以在关闭PWM输出后,把对应的引脚配置为推挽输出或开路输出,然后再使用GPIO_ResetBits语句。
代码片
//初始化配置 /* PWM1 Mode configuration: Channel1 */TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //PWM模式1TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //当定时器计数值小于CCR1_Val时为高电平 (对应关闭PWM后端口的电平值) //PWM1 Mode configuration: Channel2 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse = CCR1_Val;//跳变值TIM_OC2Init(TIM3, &TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
//在禁止定时器前,用软件强制定时器更新,可初始化电平TIM_GenerateEvent(TIMx,TIM_EventSource_Update);TIM_Cmd(TIMx,DISABLE);
实测OK。
阅读全文
0 0
- STM32 PWM调制信号关闭后端口电平不确定处理
- STM32 PWM快速开关端口电平问题
- 关于STM32 定时器PWM输出,关闭PWM时,输出引脚电平控制。
- stm32使用PWM时,关闭PWM引脚会出现高电平解决方案
- stm32使用PWM时,关闭PWM引脚会出现高电平解决方案
- stm32普通IO口捕获PWM的高电平
- stm32 6 step pwm信号生成
- STM32 PWM输出端口总结
- 信号调制
- STM8S PWM输出停止后 IO口电平输出
- PWM(脉冲宽度调制)
- PWM(脉冲宽度调制)
- 单片机PWM调制技术
- PWM 脉冲宽度调制
- 信号调制--基带调制和射频调制
- STM32 PWM
- STM32 PWM
- STM32 PWM
- 计组第一步_时序电路
- 梦中不知岁已老,朦胧人间谁登高
- Android开发——Android中常见的4种线程池(保证你能看懂并理解)
- js闭包
- 字符串id生成示例
- STM32 PWM调制信号关闭后端口电平不确定处理
- Tetris_Java(I)千里之行始于足下
- Parallel&Distributed Algorithm-1
- 每天一道LeetCode-----某个数在递增序列第一次和最后一次出现的位置
- AFN提交类型和回应类型
- SpringBatch配置多线程step
- JavaWeb框架-【Hibernate+Struts2】-框架世界的联手-图书管理系统
- LLVM学习笔记(21)
- leetcode 6 ZigZag Conversion