概述
本章STM32CUBEMX配置STM32F103输出PWM,并在示波器中查看效果。
需要样片的可以加Qun申请:615061293。
生成例程
使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板
查看原理图,PA8设置为PWM输出管脚。
生成独立的文件。
工作过程
查看下面工作原理图可以得知,时钟可以由内部Internal clock产生或者外部ETR。 同时可以设置复位,使能,向上/向下,计数。
查看下列文档可以得知,定时器主要有TIMx_CNT、TIMx_PSC、TIMx_ARR、TIMx_RCR控制。 同时预分频器(TIMx_PSC)范围位1-65535。
查看TIMx_PSC说明,可以得知定时器频率为 fCK_PSC / (PSC[15:0] + 1)
可以看到,当psc设置为不同的值的时候,计数频率也会发生改变。
同时ARR可以改变计数值,当写入的arr越大,他的频率越低,计数周期是ARR+1。
PWM频率计算如下所示。
在上面配置TIM1参数,预分频系数设置为64-1, 自动重载值设置为1000-1,那么PWM频率为64,000,000/((64-1+1)*(1000-1+1))=1000Hz,即1KHz。
只要TIM1_CNT= TIM1_CCRx,OCxRER为低。若TIM1_CCRx中的比较值大于自动重载值(在TIM1_ARR中)则OCxREF仍保持1。若比较值是0则OCxREF保持0。下图的例子显示了当TIM1_ARR=8时一些边沿对齐的PWM波形。
__HAL_TIM_SET_COMPARE()
设置ccr,可以通过此函数修改pwm。
由于上述设置计数值位1000,那么设置30%的正占空比的ccr应该配置为30%*1000=300,代码如下所示。
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, 300);
修改PWM频率
修改PWM频率可以修改PSC或者ARR来进行改变。
__HAL_TIM_SET_AUTORELOAD ()
设置TIM自动重新加载寄存器值。
初始设置为PSC为64-1,ARR为1000-1,若设置为500-1,那么他的频率应该是64M/(64-1+1)(500-1+1)=2k 占空比为300/500*100%=60%
__HAL_TIM_SET_AUTORELOAD(&htim1, 500-1);
__HAL_TIM_SET_PRESCALER()
在运行时设置TIM Prescaler。
初始设置为ARR为500-1,PSC为64-1,若设置为32-1,那么他的频率应该是64M/(32-1+1)(500-1+1)=4k 占空比为300/500*100%=60%
__HAL_TIM_SET_PRESCALER(&htim1, 32-1);
上一篇:基于STM32的多路电压采集的设计与实现
下一篇:STM32、GD32、ESP32的区别
推荐阅读最新更新时间:2024-11-16 21:55
推荐帖子
- C型USB 1.2版——USB具有更广阔的市场
- C型USB改变USB生态系统的一种重要途径是通过USB电缆两端互换(不只是翻动)。这使得诸如膝上型电脑或智能手机的USB设备取决于其所连接的其它USB装置具有不同的行为,因为数据角色和功率角色可独立交换。USB开发者论坛已经发布了C型USB1.2版本规格。其在1.1版本上做出几个关键变化,我将在此博文中总结,但最大的区别是用来描述这种新型USB生态系统的术语变化。您可能会说了C型USB术语通过此版本进行了“返工”。新的术语更好地解释了这一新型USB世界,旨在澄清并强调数据角色和功
- maylove 模拟与混合信号
- 海康威视海外版球机不能用
- 我这边有几台从国外带回来的英文版海康威视球机,我想把它用上,但是在中文版的硬盘录像机上搜索不到设备,哪位大师能有办法解决吗?海康威视海外版球机不能用不能联系当地的海康售后客服吗?一般是默认的IP,你还记得吗,通过IP地址来找设备 一通折腾,现在提示语言不匹配,添加不了,不知道怎么解决了。
- 都梁小情歌 安防电子
- 51单片机实验班各模块的应用
- 我们老师设计的一块51实验开发板,很实用!对于单片机入门者非常有用。与大家分享!包括流水灯、数码管、液晶、蜂鸣器、键盘、AD转换等模块。51单片机实验班各模块的应用原帖由lk972105于2009-7-819:10发表我们老师设计的一块51实验开发板,很实用!对于单片机入门者非常有用。与大家分享!包括流水灯、数码管、液晶、蜂鸣器、键盘、AD转换等模块。 谢谢分享谢谢你的东西了阿其实这个资料真的挺好的,就是没有人支持!呵呵,大家认真看看哦……回复楼主lk972
- lk972105 51单片机
- PA2、PA3给怎样的信号,VOUT能输出50V左右的电压?而且波形可控(脉宽、频率、周期...
- PA2、PA3给怎样的信号,VOUT能输出50V左右的电压?而且波形可控(脉宽、频率、周期、幅值等)VO1、VO2是差分信号?PA2、PA3给怎样的信号,VOUT能输出50V左右的电压?而且波形可控(脉宽、频率、周期...50V主要是你的升压部分提供的。输出取决于你的H桥驱动波形,可以直接PWM互补驱动,也可以SPWM拟合出需要的型。 驱动和输出控制能不能搞个参考电路或者连接发出来
- QWE4562009 电源技术
- 求推荐一款便宜的射频发射器,频段415M~475M可变,价格<10元
- 用于做频率扫描源,发射功率不限,其他要求如题。感谢中!求推荐一款便宜的射频发射器,频段415M~475M可变,价格10元看你要求的精度和步进值,要求较高可用PLL频率合成器芯片,只是价格满足不了。用数字通讯芯片的话,silicon的si44xx中的一些型号可以覆盖你要求的频段,只是这些通讯用芯片没法连续扫频输出,也不知基带信号对你的应用有何影响。正弦波连续扫频输出的话,只有频率合成器芯片能实现。价格10元直接在对讲机频段都覆盖完了去里面拆一颗看看
- wonderfulfly RF/无线
- 今天很烦,想找人说说话.路过的请进来坐坐...
- 当时进公司应聘VXWORKS软件开发的,进来后老板给了我一个挺棘手的项目----一个拖了客户一年半的项目,经过N个人的手,资料又不全的项目,当时也很迷茫,却又不想放弃,所以就坚持了下来,好在后来按老板的要求做好了,完成了.本以为这样就可以做有关VXWORKS的项目了,但是老板又安排我做WINDOWS下的界面开发,好,做就做吧----公司主要是做嵌入式开发的,所以没有人做WINDOWS下的开发.老板大概是知道我以前做过WINDOWS下的开发(第一个项目也是WINDOWS下的),所以就交给我
- dcyeahnet 嵌入式系统
设计资源 培训 开发板 精华推荐
- LTC1909-8EG 演示板,SMBU 控制的 DC/DC 转换器,Vin = 7.5V-21V,Vout = 1.3V-3.5V@10A
- OM27462CDKP: NFC Controller development kit
- 高速CAN收发器中Split Pin的应用电路
- 使用 STMicroelectronics 的 TDA75610LVSM 的参考设计
- QFP100封装的SPC560系列设备的子板/适配器板
- 振动传感器(模块资料+程序+原理图+说明文档).zip
- STM32F103C8T6核心板
- RT7258GSP搭配IP2163的降压快充电路模块
- NCP1076DIPGEVB:用于离线 SMPS 评估板的 20W 高压开关稳压器
- STM32F10xxx USART 应用示例使用 STM32F10xxx USART-USART 接口