常州网站建设公司好么,网站建设合同约定三年后,免费一级域名网站,建设网站公司那家好#x1f38a;【蓝桥杯嵌入式】专题正在持续更新中#xff0c;原理图解析✨#xff0c;各模块分析✨以及历年真题讲解✨都在这儿哦#xff0c;欢迎大家前往订阅本专题#xff0c;获取更多详细信息哦#x1f38f;#x1f38f;#x1f38f; #x1fa94;本系列专栏 - 蓝… 【蓝桥杯嵌入式】专题正在持续更新中原理图解析✨各模块分析✨以及历年真题讲解✨都在这儿哦欢迎大家前往订阅本专题获取更多详细信息哦 本系列专栏 - 蓝桥杯嵌入式_勾栏听曲_0的博客 欢迎大家 点赞 评论 收藏⭐️ 个人主页 - 勾栏听曲_0的博客 希望本文能对你有所帮助如有不足请指正共同进步吧 是非成败转头空。青山依旧在几度夕阳红。一壶浊酒喜相逢。古今多少事都付笑谈中。 目录
题目
设置STM32CubeMX
手搓代码
开启PWM函数
PWM占空比可调函数 题目
第十一届省赛关于PWM的题目要求如下 要求我们用PA6和PA7输出两种不同频率的占空比可调节的脉冲信号频率的设置是由定时器中的预分频系数和重装载值来决定的有需要理解的小伙伴可以取这篇文章中了解【蓝桥杯嵌入式】STM32定时器的配置解析预分频系数和重装载值与时钟频率的关系。
设置STM32CubeMX 首先我们要给PA6和PA7引脚选一个定时器下图中我们可以看到PA6由四个定时器可选分别是TIM16_CH1,TIM1_BKIN,TIM3_CH1,TIM8_BKIN但是我们只能选择后缀为CH1的定时器至于为什么可以点此了解。因为我们在前几篇文章中给按键设置的定时器为TIM3_CH1,所以在这里我们给PA6选择TIM16_CH1同样的我们给PA7选择TIM17_CH1。 引脚设置完成后我们转到左边来如下图先给定时器使能选择通道Output Compare CH1 TIM16是PA6的定时器要求是100Hz时钟原本的频率是80MHz计算出分频系数和重装载值后填入即可如何计算上面有相关链接。 如何往下翻找到Pulse,设置占空比为20.这样PA6的脉冲信号解设置好啦PA7同理设置即可。 手搓代码
开启PWM函数
以下是打开PWM的函数第一个参数是定时器第二个参数是通道。 HAL_TIM_PWM_Start(htim16,TIM_CHANNEL_1); //开启PWMHAL_TIM_PWM_Start(htim17,TIM_CHANNEL_1);
PWM占空比可调函数
这里使用按键来对PWM的占空比进行改变每按一次占空比加10等于100时跳转回10。
PWM的占空比改变的实现函数如下第一个参数是定时器第二个参数是通道第三个参数是占空比的比例如10就是10%的高电平。
_HAL_TIM_SetCompare(htim16,TIM_CHANNEL_1,pa6_duty); 以下就是完整的改变PWM的完整函数
if(key[1].key_flag 1)
{pa6_duty10;if(pa6_duty 90){pa6_duty10;}_HAL_TIM_SetCompare(htim16,TIM_CHANNEL_1,pa6_duty); //设置占空比pa6_dutykey[1].key_flag 0;
}
if(key[2].key_flag 1)
{pa7_duty10;if(pa7_duty 90){pa7_duty10;}__HAL_TIM_SetCompare(htim17,TIM_CHANNEL_1,pa7_duty); //设置占空比pa6_dutykey[2].key_flag 0;
}