[蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率) |
您所在的位置:网站首页 › stm32设置pwm频率和占空比 › [蓝桥杯嵌入式]hal库 stm32 PWM的使用(随时修改占空比,随时修改频率) |
所用工具: 1、芯片: STM32G431RBT6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32G4xxHAL库 首先是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 HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);参数对应:定时器2,通道2 修改PWM占空比 __HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, pulseVal); //修改比较值,修改占空比参数对应:定时器2,通道2,对应通道的比较值(int); 也可以: htim2.Instance->CCR2 = pulseVal;使用寄存器直接修改比较值 修改PWM输出频率: 1、通过修改重装值修改PWM输出频率 __HAL_TIM_SetAutoreload(&htim2 , atrVal);参数对应:定时器2,定时器的自动重装值; 缺点:如果不同步修改通道的比较值,也会对占空比造成干扰 下面的的就没有这个缺点 2、通过修改分频率值修改PWM输出频率 __HAL_TIM_PRESCALER(&htim2, pscVal);参数对应:定时器2,定时器的预分配值(PSC); |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |