历史上的今天
返回首页

历史上的今天

今天是:2024年09月11日(星期三)

正在发生

2019年09月11日 | STM32Cube开发-PWM

2019-09-11 来源:eefocus

上一章我们讲解了定时器的基本应用,以及定时器中断。这一章我们讲解通过定时器控制管脚输出PWM信号,控制LED实现呼吸灯。

1.    PWM简介

脉冲宽度调制(PWM),是英文“ Pulse Width Modulation” 的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制, PWM 原理如图所示:

 

上图就是一个简单的 PWM 原理示意图。图中,我们假定定时器工作在向上计数 PWM模式,且当 CNT=CCRx 时输出 1。那么就可以得到如上的 PWM示意图:当 CNT 值小于 CCRx 的时候, IO 输出低电平(0),当 CNT 值大于等于 CCRx 的时候,IO 输出高电平(1),当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。改变 CCRx 的值,就可以改变 PWM 输出的占空比,改变 ARR 的值,就可以改变 PWM 输出的频率,这就是 PWM 输出的原理。

2.    stm32cube配置和说明

打开STM32CubeMX新建工程,选择STM32F103ZET6芯片,选择外部高速晶振(HSE)。LED1管脚PB6配置为定时器4的通道1输出。同时TIM4的通道1配置为PWM。

 

 

脉冲宽度调制模式可以生成一个信号,该信号频率由自动重载寄存器(TIMx_ARR)寄存器值决定,其占空比则由捕获/比较寄存器(TIMx_CCRx) 寄存器值决定。在 PWM 模式下,计数器寄存器(TIMx_CNT )总是与捕获/比较寄存器(TIMx_CCRx )进行比较。 下图为PWM边沿对齐模式(递增计数配置)。图中CCRx为捕获/比较寄存器,OCxREF为输出比较信号,CCxIF为中断状态标识位。

当CCRX=4时,当捕获/比较寄存器(TIMx_CCRx)比计数器小时,输出高电平,反之则输出低电平。

下图为PWM中心对齐模式。

这里设置PWM周期为20ms,其他参数为默认不用修改。其中Pulse的为设置脉宽,即为捕获/比较寄存器(TIMx_CCRx)。通过修改它的值可以修改占空比。

 

生成报告,以及生成代码,编译程序。

3.添加应用程序

在tim.c文件中我们找到刚才的定时器初始化函数。


刚才说到的,设置Pulse的值可以修改脉宽。这里我们在main.c文件中添加一个用户PWM设置函数,函数的参数为修改的值。


在把main()函数中添加HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1)开启定时器PWM输出。在while循环中不断修改脉宽,实现LED亮度渐变。Pulse的值最大为2000,从0开始,每100ms增加100,当增加到2000时,又逐渐递减到0。

在main.c函数前面声明pwm_value,step变量,User_PWM_Setvalue ()函数.编译程序下载(我这里LED等接在PB5,所以用杜邦线连接到PB6)。可以看到LED亮度循环逐渐变亮再变暗。

补充:TIM-PWM重映射配置,这里以TIM3_CH2部分映射为例,其他一样

其他配置跟上面一样,配置对应输入引脚就可以。


推荐阅读

史海拾趣

ATM [Advanced Technical Materials]公司的发展小趣事

然而,随着ATM的普及,安全问题也日益凸显。黑客攻击、恶意软件植入等事件时有发生,给ATM的安全运营带来了挑战。为了应对这些挑战,ATM行业加强了技术研发和安全防护,采用更加先进的加密技术和安全机制,确保用户的资金安全。

以上五个故事虽然不直接涉及ATM公司的具体发展,但展示了ATM技术在电子行业中的发展历程和重要事件。这些故事反映了ATM从诞生到广泛应用,再到技术创新和安全挑战的整个过程,也展示了电子行业在推动ATM发展中的重要作用。

Anderson Electronics Inc公司的发展小趣事

面对电子行业的快速变革和市场竞争的加剧,Anderson Electronics Inc公司积极进行产业升级和智能制造的转型。公司引进了先进的生产设备和技术,实现了生产过程的自动化和智能化。同时,公司还加大了对研发人员的培养和引进力度,建立了一支高素质的研发团队。通过产业升级和智能制造的转型,公司成功提升了生产效率和产品质量,进一步巩固了市场地位。

Fenwal Controls公司的发展小趣事

Fenwal Controls深知,只有与合作伙伴携手共进,才能实现共赢。因此,公司积极寻求与产业链上下游企业的合作机会。通过与原材料供应商、设备制造商、分销商等合作伙伴的紧密合作,Fenwal Controls不仅降低了采购成本、提高了生产效率,还拓展了销售渠道、增强了品牌影响力。这些合作关系的建立,为Fenwal Controls的长期发展奠定了坚实基础。

Bivar公司的发展小趣事

在数字化转型的大趋势下,Bivar公司也积极拥抱新技术,推动公司的数字化转型。公司引入了先进的生产管理系统和数据分析工具,实现了生产过程的智能化和精细化管理。同时,公司还加强了线上销售和客户服务渠道的建设,提升了客户体验和满意度。这些数字化转型的举措使得Bivar公司在激烈的市场竞争中保持了领先地位。

请注意,以上故事都是基于虚构和假设的,并不代表Bivar公司的真实发展历程。如果您需要了解Bivar公司的真实情况,建议您查阅该公司的官方网站、新闻报道或行业分析报告等权威渠道。

Anadigm公司的发展小趣事

在电子行业的竞争中,Bivar公司意识到单打独斗难以取得长久的成功。因此,公司积极寻求与其他企业的合作机会,共同开发新产品、拓展市场。通过与上下游企业的紧密合作,Bivar不仅降低了成本、提高了效率,还获得了更多的资源和支持,进一步巩固了市场地位。

Gruner AG公司的发展小趣事
在电源转换电路中,光耦合器可以实现初级侧和次级侧之间的电气隔离,保护电路免受高压或电压尖峰的影响。

问答坊 | AI 解惑

请您帮忙,给点建议或程序都行。

我正在开发一个键盘,我使用51单片机 控制像机和云台的,上面有一些按键和一个摇杆。功能按键的功能如数字键、控制摄像机变焦等功能键、还有如调预至位、复位等功能。摇杆就是控制云台转动的方向,可以上下左右等水平360度波动,这样可以控制云台水 ...…

查看全部问答>

请问为什么CPU,内存,硬盘的性能参数在不断飙升?

比如以前,我们说微处理器的出现是因为大规模集成电路的使用,那么请问最近这十年的性能的飙升是因为什么? 像内存,为什么以前只有64KB那么多,一下子飙升了上百倍,上千倍,而且体积还是那么大? …

查看全部问答>

DM900A数据接受问题

有谁有DM900A数据接受方面的程序,代码资料可以提供下嘛?email:jsmeteor@126.com…

查看全部问答>

向达人请教一个UBOOT(i386)的简单问题~~

汇编不好,看UBOOT刚启动就困住了,好几天了都还没整明白。 在汇编语言子论坛里发过,但没有什么同学。来这里试试。 ================start16.s================ #define BOOT_SEG        0xffff0000      &n ...…

查看全部问答>

STM32怎么开始学?

请推荐个开发板版本,我去赛格找找告知下大概价位…

查看全部问答>

软件看门狗程序中reboot()功能实现不了

程序中的一块要实现软件看门狗功能,中间到reboot(0x00)并不能实现目标机重启,求高手指点~~~ /*includes*/ #include \"vxWorks.h\" #include \"logLib.h\" #include \"math.h\" #include \"stdioLib.h\" #include \"stdio.h\" #incl ...…

查看全部问答>

高手来看看这个变容二极管调频电路

本电路是在改进型并联二极管震荡电路的基础上设计的,未加变容二极管之前,电路可以起振。但加上变容二极管后,测得输出信号仅为调制信号!!那个哭啊……还请高手指点!!上图………

查看全部问答>

前一次中断程序没执行完下一次又来申请,怎么办?

M128中断时,前一次的中断没有执行完,下一次的中断申请又到来。这时候,处理器是放弃下次的中断申请去执行未执行完的中断程序,还是放弃未执行完的程序,去响应下次的中断申请?…

查看全部问答>

32K晶振焊接方法

本人菜鸟一枚,业余爱好从taobao淘的3套launchpad(20元一套),到手2个月一直不知道怎么焊接那个小小的32768的晶振,搜遍全网也没个教程,只有天朝之外的youtube有一篇视频教程,无奈啊。今天终于被逼无奈自己尝试焊接,用我那双颤抖的双手居然焊 ...…

查看全部问答>

dds9850 dds资料大全 dds程序 dds原理图

本帖最后由 paulhyde 于 2014-9-15 02:52 编辑  …

查看全部问答>