[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率)
将分频值设置为800(最好是800-1),自动重装值为100(最好是100-1)打开自动重装载使能,否认修改频率或者占空比时可能出现pwm输出停滞一小段的情况。(虽然输出比较模式也能输出可变的PWM,但是需要利用中断,会加大代码复杂度)PWM频率就是80 000 000 / 800 / 100 = 1000HZ。使得PWM按照上面的预设参数输出PWM。启动定时器2的通道2的PWM输出模式。占空比为
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
首先是CUBEMX配置
打开系统Debug引脚
设置RCC
设置高速外部时钟HSE 选择外部时钟源
时钟源设置(80MHZ)
省时间可以直接到图中部分输入对应的频率,然后会询问你需不需要自动配置,回车就行
项目文件设置
关键配置:
如下是定时器配置
设置时钟源为内部时钟
启动定时器2的通道2的PWM输出模式
(虽然输出比较模式也能输出可变的PWM,但是需要利用中断,会加大代码复杂度)
将分频值设置为800(最好是800-1),自动重装值为100(最好是100-1)
打开自动重装载使能,否认修改频率或者占空比时可能出现pwm输出停滞一小段的情况
比较值设置为20
这里主频是80Mhz,所以
PWM频率就是80 000 000 / 800 / 100 = 1000HZ
占空比为:20/100 = 20%;
生成代码好后往下看
关键函数:
__HAL_TIM_DIRECTION_STATUS
__HAL_TIM_PRESCALER
__HAL_TIM_SetCounter
__HAL_TIM_GetCounter
__HAL_TIM_SetAutoreload
__HAL_TIM_GetAutoreload
__HAL_TIM_SetClockDivision
__HAL_TIM_GetClockDivision
__HAL_TIM_SetICPrescaler
__HAL_TIM_GetICPrescaler
__HAL_TIM_SetCompare
__HAL_TIM_GetCompare
__HAL_TIM_PRESCALER :修改预分频值
__HAL_TIM_SetAutoreload :修改自动重装载值
__HAL_TIM_SetCompare :修改比较值
示范使用:
打开PWM
打开定时器二的通道二的使能
使得PWM按照上面的预设参数输出PWM
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
ps://bbs.csdn.net/topics/618679757)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)