实现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;
}
}