历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2019年01月30日 | STM32 定时器输出PWM的模式

2019-01-30 来源:eefocus

数据手册上TIMx_CCMR1寄存器的6:4位决定了定时器输出PWM的几种模式:


000:冻结。输出比较寄存器TIMx_CCR1与计数器TIMx_CNT间的比较对OC1REF不起作用。即当计数器值与比较值相等时管脚上电平信号保持上一次的信号。


Eg:定时器设置:


TIM_TimeBaseStructure.TIM_Period = 1000; // 设置自动重载周期值

TIM_TimeBaseStructure.TIM_Prescaler = 47; // 设置预分频值48分频

TIM_TimeBaseStructure.TIM_ClockDivision = 0; // 设置时钟分割:TDTS = Tck_tim

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // TIM向上计数模式

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); // 初始化TIM3


eg:TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Timing; // 输出比较模式设置为冻结模式


TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; // 输出使能


TIM_OCInitStructure.TIM_Pulse = 200;  // 设置比较值


TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;  // 有效电平极性为低


TIM_OC1Init(TIM3, &TIM_OCInitStructure);  // 配置参数


输出现象:计数器从0开始计数到200,这段时间通道1管脚输出高电平(无效电平),到200后与比较值一致则锁定当前比较值,所以最终通道1管脚上电平为高电平。


001:匹 配 时 设 置 通 道 1 为 有 效 电 平 。当 计 数 器 TIMx_CNT 的 值 与 捕 获 / 比 较 寄 存 器1(TIMx_CCR1)相同时,强制OC1REF为高。


eg:TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Active; // 输出比较模式设置为冻结模式


TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; // 输出使能


TIM_OCInitStructure.TIM_Pulse = 200;  // 设置比较值


TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;  // 有效电平极性为低


TIM_OC1Init(TIM3, &TIM_OCInitStructure);  // 配置参数


输出现象:计数器从0开始计数到200,这段时间管脚1输出高电平(无效电平),到200后与比较值一致则输出当前有效电平低电平,最终管脚1上电平为低电平。

010 : 匹 配 时 设 置 通 道 1 为 无 效 电 平 。 当 计 数 器 TIMx_CNT 的 值 与 捕 获 / 比 较 寄 存 器

1(TIMx_CCR1)相同时,强制OC1REF为低。



eg:TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Inactive; // 输出比较模式设置为冻结模式


TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; // 输出使能


TIM_OCInitStructure.TIM_Pulse = 200;  // 设置比较值


TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;  // 有效电平极性为低


TIM_OC1Init(TIM3, &TIM_OCInitStructure);  // 配置参数


输出现象:计数器从0开始计数到200,这段时间管脚1输出高,到200后与比较值一致输出与设置极性相反的电平。设置有效电平为低,则实际输出高,所以最终通道1管脚一直输出高。

011:翻转。当TIMx_CCR1=TIMx_CNT时,翻转OC1REF的电平。


eg:TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle; // 输出比较模式设置为翻转模式


TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; // 输出使能


TIM_OCInitStructure.TIM_Pulse = 200;  // 设置比较值


TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;  // 有效电平极性为低


TIM_OC1Init(TIM3, &TIM_OCInitStructure);  // 配置参数


输出现象:计数器从0开始计数到200,这段时间管脚1输出高,到200后与比较值一致输出与设置极性一样的电平。设置有效电平为低,则实际输出200高,800低。在中断中不断改变设置值则,可输出不同占空比的波形。

110: PWM模式1- 在向上计数时,一旦TIMx_CNT

无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否

则为有效电平(OC1REF=1)。


TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; // 选择PWM模式2


TIM_OCInitStructure.TIM_Pulse = 200;  // 设置比较值


TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; // 比较输出使能

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; // 输出极性高

TIM_OC2Init(TIM3, &TIM_OCInitStructure);


TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); // 使能预装载寄存器


输出现象:计数器从0计数到199时通道输出低电平(无效电平)。到200时与比较值相同,输出有效电平高电平。使能了输出比较预装载值,所以可以稳定输出200脉冲的低800脉冲的高电平。


推荐阅读

史海拾趣

Enova Technology Corp公司的发展小趣事

自2000年4月成立以来,Enova Technology Corporation(伊诺瓦科技)就以其卓越的技术创新能力在电子行业中崭露头角。公司总部位于台湾新竹科学工业园区,这里汇聚了众多高科技企业和研发机构,为伊诺瓦科技提供了丰富的技术资源和人才支持。

伊诺瓦科技专注于硬件加解密解决方案的研发与应用,其产品在军事单位、政府机关、财务金融机构等领域得到了广泛应用。其中,公司的X-WallSE产品凭借其独特的携带式电子钥匙(Security Key)技术,实现了硬盘的一对一加密,为用户提供了前所未有的数据安全保护。这一创新技术的推出,不仅提升了公司的市场竞争力,也为整个电子行业树立了新的技术标杆。

随着技术的不断发展,伊诺瓦科技不断推出更加先进的产品和解决方案。例如,公司的SecureNAS系列产品在网络硬盘服务器加解密应用方面提供了全新的解决方案,为用户提供了更加便捷、高效的数据安全保护。这些产品的推出,不仅进一步巩固了公司在电子行业的领先地位,也为公司的未来发展奠定了坚实的基础。

Genisco Electronics公司的发展小趣事
考虑当地的燃料供应情况和成本,选择适合的燃料类型(如柴油、燃气等)。
艾为(AWINIC)公司的发展小趣事

艾为电子注重与产业链上下游企业的合作,通过协同创新和资源共享,实现共赢发展。例如,艾为与歌尔股份建立了长期合作伙伴关系,双方在声光电射手等领域展开了深度合作,共同推出了多款优秀产品。此外,艾为还与多家ODM厂商和智能硬件企业建立了紧密的合作关系,共同推动产业链的协同发展。

FOCI Fiber Optic Communications Inc公司的发展小趣事

艾为电子自成立以来,一直致力于技术研发和产品创新。公司研发团队不断攻克技术难题,推出了一系列具有竞争力的产品。其中,音频功放芯片作为公司的主打产品之一,凭借出色的性能和稳定的品质,赢得了市场的广泛认可。此外,艾为还在信号链、电源管理等领域取得了显著的技术突破,为公司的持续发展奠定了坚实的基础。

Foxboro I C T Inc公司的发展小趣事

随着艾为电子在技术和产品方面的不断突破,公司开始积极拓展市场。艾为电子的产品不仅覆盖了华为、小米等知名手机厂商,还广泛应用于可穿戴设备、智能便携设备等领域。同时,公司还加大了品牌建设的力度,通过参加行业展会、举办技术研讨会等方式,提高了品牌知名度和影响力。

上海晶丰明源(BPS)公司的发展小趣事

上海晶丰明源半导体股份有限公司的创立,标志着中国在半导体领域的又一重要布局。公司自成立之初,就专注于电源管理芯片的研发与销售,凭借对技术的深入理解和市场需求的敏锐洞察,迅速在行业中崭露头角。初步发展阶段,晶丰明源通过不断优化产品设计、提升生产工艺,逐步赢得了客户的信任,并在市场上占据了一席之地。

问答坊 | AI 解惑

AT201无线防盗报警器

该系统是当今先进的防盗报警系统,以求助、防盗融为一体,是现代家庭理想的保安器材。最适用于家庭、商铺的防盗报警。        探头发现盗情后,主机自动拨打您预存的电话号码(多至10个),如手机、固定电 ...…

查看全部问答>

智能全数字锁相环的设计

摘要: 在FPGA片内实现全数字锁相环用途极广。本文在集成数字锁相环74297的基础上进行改进,设计了锁相状态检测电路,配合CPU对环路滤波参数进行动态智能配置,从而使锁相环快速进入锁定状态,在最短时间内正常工作并且提高输出频率的质量。 关键词 ...…

查看全部问答>

C语言返回语句

如流程图所示,在程序中要写返回到开始程序的语句,但是我不会用C语言写,请求帮助! 另外,那个定时功能用C语言该怎么写啊? 谁有类似的程序啊?…

查看全部问答>

EVC里面有否办法调整窗口的z次序分配规则

   WinCE里面做Win32应用程序,十分郁闷的就是其控件Z次序分配与VS里面完全相反,VS里面后创建的控件在前,但是在CE里面却是先创建的控件在前,造成很多不便,比如说要声明一个Group Button,再以这个Group Button作为父窗口在里面再创建 ...…

查看全部问答>

求教个整流电路的问题

我用了个整流电路,用multisim仿真,负载开路时,测其内阻,发现竟然有2M欧姆左右,怎么会那么大?如图。…

查看全部问答>

基于STM32的IAP设计文档

感觉不错, 我就把原版的word转换为pdf分享过来了,资料感觉还是pdf比较好,各种pdf阅读器都可以,word不行,微软自己都好几个版本呢,、…

查看全部问答>

win7 32位旗舰版安装Quartus II13.0时安到最后老是出错,请问有谁知道什么原因吗

win7 32位旗舰版安装Quartus II13.0时安到最后老是出错,请问有谁知道什么原因吗…

查看全部问答>

ccs3.3中使用profile看指令周期的问题

使用tms320c6713的芯片,在ccs3.3环境下使用profile 来观察代码所在的range所消耗的时间情况,这段代码将1000个16bit的有符号整形转换为float型,函数内容如下所示 void dataFormatTrs(Int16 *input, float *output, int size) {   in ...…

查看全部问答>

MSP430F6638IO端口中断问题,求解决。。

描述:MSP430F6638IO端口中断时,它的IO端口捕捉中断时是捕捉的上升沿还是下降沿?我知道能在PXIES中设置,相应的位为0时是上升沿,为1时是下降沿中断,但是如果初始化时不设置的话也就是默认的话是上升沿还是下降沿捕捉中断呢?手册上是说PXIES复 ...…

查看全部问答>