你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32CubeMX—PWM波输出实验

[复制链接]
STMCU小助手 发布时间:2022-5-15 14:51
定时器PWM波实验实验说明芯片:STM32F103RCT6实验内容:使用定时器2的通道1输出PWM波控制LED灯的亮度。实验操作1、基础配置1)sys中,选好调试方式,例如jtag-4pin。2)RCC时钟,晶振选择。3)时钟树配置。4)中断分组配置。以上步骤可以参考之前的实验。2、外设配置—PWM波配置本次实验使用的是TIM2的通道1来输出PWM波。1) 如下图打开TIM2功能配置视图。​​​​​​ ]@V62%VE1)6W8{3PWZRO~Z0.png 2)选择时钟,并且选择通道1的PWM模式。 G2(64V%LUY3VD6]CBME8.png $]Q)5HD0}%)H`CLG7)0~A3C.png 注意载芯片示意图上 会看到下图 PA0 就是TIM2 的通道1 PWM波输出口。 G%]MRP{HO}AAX){}P36W7QH.png 3)配置PWM波的参数 ~A2Z@SY%KXXVVO1VVVY6{H6.png 上图中需要理解两个点,PWM 的频率 : 9)U1A(_GRR2@97H$V~9C]3D.png PWM模式和极性:PWM模式1,在向上计数时,一旦TIMx_CNT < TIMx_CCR1(就是上图中的6,计数比较值)。时通道1为有效电平,否则为无效电平;在向下计数时,一旦TIMx_CNT>TIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。PWM模式2- 在向上计数时,一旦TIMx_CNT < TIMx_CCR1时通道1为无效电平,否则为有效电平;在向下计数时,一旦TIMx_CNT > TIMx_CCR1时通道1为有效电平,否则为无效电平输出比较极性的指的是你在比较匹配之后输出口输出的极性。 这个函数就是让你设置有效极性,也就是设置比较输出的有效电平。你可以设置为高电平有效或者低电平有效。如果设置为高电平有效,那么当定时器比较匹配之后,输出口输出高电平,否则就反一下。这里我自己的理解是,如果是PWM模式1,且向上计数,如果极性设置为低,那么 TIMx_CNT < TIMx_CCR1 时,输出低电平,更简单就是占空比为1 – TIMx_CCR1/(ARR+1). 如果极性为高,占空比就是TIMx_CCR1/(ARR+1)、3 生成代码由于这里不用中断,所以不用配置中断优先级。所以写好工程的名字和路径后,直接生成代码即可。4 在工程中开启PWM在完成以上设置之后,我们需要使能 TIM2 并且使能 TIM2_CH1 输出。在 HAL 库中,函数 HAL_TIM_PWM_Start 可以用来实现这两个功能,函数声明如下:
  1.                     HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
复制代码
该函数第二个入口参数 Channel 是用来设置要使能的通道号。 B0)F(A~S[GML5CMJY@PW(DC.png 5 修改占空比推荐使用寄存器的方式
  1.                               TIMx->CCRx = NUM;   (x为数字。 NUM 为一个数字 范围0 - ARR)
复制代码
6 测试下载程序,然后可以使用万用表测试PA0口的电压值,为0.54~0.55V `T{7JU4KQ]HII_79PDX@D)6.png (PWM模式1,极性为高 所以占空比为 150/900 * 3.3 为0.55V。
收藏 评论0 发布时间:2022-5-15 14:51

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版