刚开始接触STM32,遇到一个项目中出现在产品调试中出现在关闭PWM输出时,GPIO电平有不确定的情况。在网上查阅资料发现大神们是这样解释的:PWM在一个脉冲没有结束时关闭输出,会导致GPIO电平不确定。
解决方法:1、在关闭PWM输出时随即将相应GPIO强制为低(这个高/低看各人的需要)
tiM_Cmd(TIM3 ,DISABLE);//关闭PWM输出
TIM_ForcedOC1Config(TIM3, TIM_ForcedAction_InActive);//将PWM输出强制为低
2、在下次打开PWM时使用下面的函数
/*因前面使用PWM强制输出为低,此处需要重新打开PWM输出*/
TIM_SelectOCxM(TIM3, TIM_Channel_1, TIM_OCMode_PWM1);
TIM_CCxCmd(TIM3, TIM_Channel_1, TIM_CCx_Enable);
TIM_Cmd(GENERAL_TIM, ENABLE);//使能TIMER3,开始产生PWM
希望对奋斗在路上的大家有帮助。
关键字:STM32 PWM功能
引用地址:
STM32 PWM功能在关闭时GPIO电平不确定的情况
推荐阅读最新更新时间:2024-11-02 05:45
基于STM32的无线传感器网络系统设计
引言 无线传感器网络(Wireless Sensor Networks,WSN)是由分布在监测区域内的大量的传感器节点,通过无线通信的方式形成的多跳自组织网络,可以组成区域内的无线传感器网络,广泛应用于环境监测,如温度、湿度、压力、短距离无线通信等。 无线传感器网络,其主题是低成本、低功耗、多功能的集成化传感器网络。这些传感器具有无线通信、数据采集和处理、协同合作的功能。无线传感器网络能够通过各类集成化的传感器协作地实时监测、感知和采集各种环境或监测对象的信息,通过嵌入式系统对信息进行处理,并通过随机自组织无线通信网络以多跳中继方式将所感知信息传送到用户终端,使用户完全掌握监测区域的情况并作出反应。 1 无线传感器网络
[单片机]
这8种STM32中GPIO工作模式,你都知道吗?
一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。 二、开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。开漏形式的电路有以下几个特点: 1、利用外部电
[单片机]
STM32的SPI查询方式传输测试
环境: 主机:WIN7 开发环境:MDK4.23 MCU:STM32F103CBT6 说明: 软件设置NSS脚,利用查询方式传输 源代码: 初始化代码: //关闭SPI SPI_Cmd(SPI1,DISABLE); //初始化SPI接口的SSN脚以及NTRX的RST脚 NtrxCtrlInit(); //初始化SPI时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1 | RCC_APB2Periph_GPIOA,ENABLE); //配置SPI1引脚:SCK, MISO and MOSI GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5
[单片机]
STM32_EXTI外部中断学习笔记
参考资料:《STM32F4xx中文参考手册》系统配置控制器以及中断和事件章节。 EXTI( External interrupt /evet controller) 之前接触过51单片机的都了解到51单片机有两个外部中断 ,分别为外部中断0、1。用来实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。而STM32的则有与之功能相同的外部中断事件控制器。外部中断/事件控制器(EXTI)管理了控制器的 23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的
[单片机]
stm32.cube(六)——HAL.FLASH
一、片内Flash特性 1.1 FLash结构简图 我的开发板是stm32f103xx,所以片内flash主存储器大小128K,单页为1K。不同的芯片flash大小不同,页大小也不同。 主存储器 用来存储Rom程序,烧写的区域。当然也可以存一些其他东西,比如做nvram使用。 信息块 这个区域分两个部分。 存储区,用户不可写区域,用来存储ISP下载时用到的程序。当用ISP模式进行烧写时,自动调用里面的程序下载数据并烧写到flash里。 用户选项字,存储硬件配置信息。某些复用的外设可能在上电复位后就要立即知道它被用作其中哪个用途。 用户选项字默认不可写,它上电自动加锁。只有通过向FLASH_OPTKEYR依次写入约定解锁码KE
[单片机]
STM32推挽输出和开漏输出的区别
当端口配置为输出时: 开漏模式:输出 0 时,N-MOS 导通,P-MOS 不被激活,输出0。 输出 1 时,N-MOS 高阻, P-MOS 不被激活,输出1(需要外部上拉电路);此模式可以把端口作为双向IO使用。 推挽模式:输出 0 时,N-MOS 导通,P-MOS 高阻,输出0。 输出 1 时,N-MOS 高阻,P-MOS 导通,输出1(不需要外部上拉电路)。
[单片机]
基于STM32的EMS液晶显示触摸屏设计方案
0 引 言 电动车一直以清洁环保而备受关注,加上能源危机加剧、油价不断上涨,电动车也越来越受到用户的青睐。电动车一般采用锂电池供电,由多个单体电池串联成电池组作为动力电源。但由于各个串联单体电池特性不能保证完全一致,因此相同的电流下充电放电速度也会不同,如果不进行均衡干预,电池寿命会大大缩短,因此需要实时监控各个单体电池的状态、总电压、总电流,根据状态适时进行电池充放电均衡,并且充放电均衡时,均衡状态也要实时进行检测,所以就有了电动车电池能量管理系统(EMS)。实践证明EMS可以有效延长电动车电池使用寿命,是电动车中十分重要的管理系统。 EMS主要包括:信息采集模块、充放电均衡模块、信息集中处理模块以及显示模块。图1为自主
[单片机]
STM32多机通信
从机io口设置 多机通信系统中,从机采用漏级开路方式连接,从设备的串口必须配置为漏极开路,不能是推挽方式,推挽方式的高、低电平的驱动能力很强,如果将两个不同电平的io口连接在一起,会导致灌电流过大烧坏io口,漏极开路的漏级有上拉电阻会限制电流的大小。 一主多从的硬件连接方式 主机的TX输出与从机的RX端口直接相连,从机的TX端口经过与门与主机的RX端口相连接。由于输出口为推挽输出,直接将从机的Tx与主机的RX相连即可。 通信机制 多机通信机制是使从机处于静默状态,从机发送指令唤醒从机,然后发送数据。 静默状态的特点 (1)所有接收状态都不会被置为1。 (2)所有的接收中断都被禁止。 (3)USART_CR1寄存器中的RWU被置为1
[单片机]