stm32使用PWM时,关闭PWM引脚会出现高电平解决方案

发布者:温暖的拥抱最新更新时间:2018-07-01 来源: eefocus关键字:stm32  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
}

用示波器观测了一下,发现PWM关闭期间管脚电平有时是高电平,有时是低电平……查找手册也没找到相关说法。用TIM_OC1Init()把TIM3重新配置一下倒是可以解决,但是速度太慢了。


更为快捷的方式是:通过TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);强制输出低电平解决了,呵呵。

在使用PWM时,在设置为活动电平TIM_ForcedOC3Config(TIM4, TIM_ForcedAction_Active);,成功解决这个问题


关键字:stm32  PWM时  高电平 引用地址:stm32使用PWM时,关闭PWM引脚会出现高电平解决方案

上一篇:STM32的PWM极性和模式
下一篇:stm32 pwm实现过程

推荐阅读最新更新时间:2024-03-16 16:07

STM32初学笔记1之RCC(上)
我参考了STM32的标准外设库中的RCC例程,然后对其在原有的基础上做了一定的修改,单独添加到了RCC_ClkConfig.C和RCC_ClkConfig.H两个文件当中,把这个作为以后系统时钟配置的通用函数,在这里共享出来,示例代码如下: ////////////////////////////////////////////////////////////////////////////////////////////////////// RCC_ClkConfig.C /////////////////////////////////////////////////////////
[单片机]
STM32库函数实现USART发送数据
参考文件:STM32固件库使用手册的中文翻译版.pdf 如图1 我们先把USART初始化函数添加到主函数,如图二 包括Baudrate,Word Length,Stop Bit,Parity,Hardware Flow Control(硬件流控制),Usart Mode; UE使能,使能串口外设,如图3 3.串口初始化,串口外设使能之后,就要发送数据了如图4; 4.发送完成标志位函数,如图5; 程序1 实现功能代码如下 /************************************************ 刘凯教你学STM32F103 第20讲 软件仿真,库函数实现USART数据发送 2
[单片机]
未来通用MCU的方向是什么?
来源:21ic电子网 在2023年STM32峰会上,看通用MCU的未来发展方向。 从2007年发布STM32家族首款芯片——STM32F1以来,ST就开始了在通用MCU领域的传奇之旅。从2013年10亿,2020年60亿,到现在的110亿,STM32的累积出货量攀升地越来越快。而究其成功的背后原因,正是因为其每一代的产品定义都完美契合了当时当下的行业需求,并且在产品的数次迭代过程中,延续了一致的开发环境,并且伴随着一路积累,整个STM32生态越发繁盛。 在2023年,通用MCU已经不再是简单的一通百用,几个大的细分赛道也有足够大的量来支撑其通用MCU的差异化发展。而什么样的MCU才是未来行业应用趋势是什么样的?什么样
[嵌入式]
未来通用MCU的方向是什么?
STM32-串口实验学习笔记
USART1_IRQHandler(void)函数: 当串口1发生了相应的中断,就会跳到改函数执行。这里设计了一个小小的接收协议(系统并未定义):通过这个函数,配合一个数组USART_RX_BUF ,一个接收状态寄存器USART_RX_STA实现对串口的数据的接收管理。USART_RX_BUF 最大值为64,也就是一次接收的数据最大不能超过64字节。USART_RX_STA是一个接收状态寄存器,其各位的定义如表所示: (注意:这个是作者设计的协议,怎样判断串口接收一组数据完毕?由于每次接收的数据长度不一样,少的就3个8位数据,多的时候有十多个,这个数据个数是不定的,且没规律的数据,有什么好的方法让它接收完整? 协议的设
[单片机]
STM32-串口实验学习笔记
stm32闪存的理解
STM32f1xxx的闪存模块由:主存储器、信息块和闪存存储器接口寄存器等3部分组成。 各个部分的大小因不同型号有一定的差异,数据手册中可以看到 小容量产品主存储块1-32KB,每页1KB。系统存储器2KB。 中容量产品主存储块64-128KB,每页1KB。系统存储器2KB。 大容量产品主存储块256KB以上,每页2KB。系统存储器2KB。 主存储器:该部分用来存放代码和数据常数(如const类型的数据)。对于大容量产品,其被划分为256页,每页2K字节。注意,小容量和中容量产品则每页只有1K字节。从上图 可以看出主存储器的起始地址就是0X08000000, B0、B1都接GND的时候,就是从0X08000000开始运行
[单片机]
普通8位单片机和STM32单片机复位电路区别
普通8位单片机,如AT、STC等芯片厂商,单片机须使用高电平复位,复位后保持低电平 STM32单片机,使用低电平进行复位,NRST复位引脚在一般情况需保持高电平电路才能正常工作。 另外单片机上电时间是有要求的,所以因根据数据手册匹配指定的RC复位电路。
[单片机]
基于STM32的四种波形发生器设计
(1) 可以实现四种波形:正弦波、方波、三角波、锯齿波; (2) 通过按键进行选择,频率可以调整; (3) LCD液晶显示; (4)设计出来之后用Proteus软件仿真出效果; 主要硬件设备:STM32F103单片机、DAC0832数模转换芯片、矩阵键盘、LCD12864液晶屏幕。 效果图 正弦波 方波 三角波 锯齿波 单片机源程序如下: #include stm32f10x.h #include sys.h #include delay.h #include 12864.h #include key4_4.h #include timer.h //LYF #define KE
[单片机]
基于<font color='red'>STM32</font>的四种波形发生器设计
STM32单片机对TFTLCD的驱动设计
看了TFTLCD和FSMC(灵活的静态存储控制器)的简介,还是一知半解,不知所云。 TFTLCD使用80并口,80 并口有如下一些信号线: CS: TFTLCD 片选信号。 WR:向 TFTLCD 写入数据。 RD:从 TFTLCD 读取数据。 D[15: 0]: 16 位双向数据线。 RST:硬复位 TFTLCD。 RS:命令/数据标志( 0,读写命令; 1,读写数据)。 只是记住FSMC在使用的时候要初始化和使能就行了。 关于lcd.c这个文件竟然接近3000行,好吧,我是写不出来,只能在主函数里调用了。 main.c: intmain(void) { u8x=0; u8lcd_id[12];//存放LCDID字符串
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved