蓝桥杯嵌入式——PWM输出
2023-12-20 17:10:34
实现PA6输出一个100HZ,PA7输出一个200HZ,占空比通过两个按键调节,占空比循环10-90。
80 000 000 / 8000?/ 100?= 100HZ
80 000 000 / 4000?/ 100?= 200HZ
设置PWM模式,分频系数,重装载值,占空比,以PA6为例如下:PA7同理
main.c
打开PWM输出:
HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);
定义两个全局变量用于存放占空比的值:?
uint8_t pa6_duty;
uint8_t pa7_duty;
死循环里放入LCD显示函数,显示占空比的值:
注意:sprintf()函数要用stdio.h这个头文件
char text1[30];
sprintf(text1," PA6_duty = %d ",pa6_duty );
LCD_DisplayStringLine(Line2, (u8 *)text1);
char text2[30];
sprintf(text2," PA7_duty = %d ",pa7_duty);
LCD_DisplayStringLine(Line4, (u8 *)text2);
按键处理函数里调节占空比的值:
void Key_Pro(void)
{
switch(Key_Scan())
{
case 1://B1?ì°′
pa6_duty += 10;
if(pa6_duty > 90)
pa6_duty = 10;
__HAL_TIM_SetCompare(&htim16,TIM_CHANNEL_1,pa6_duty);
break;
case 2://B2?ì°′
pa7_duty += 10;
if(pa7_duty > 90)
pa7_duty = 10;
__HAL_TIM_SetCompare(&htim17,TIM_CHANNEL_1,pa7_duty);
break;
}
}
文章来源:https://blog.csdn.net/qq_53471484/article/details/135108975
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!