
定义变量
uint16_t PA6_frq,PA7_frq;
uint16_t PA6_duty=10,PA7_duty=20;
开启定时器PWM
HAL_TIM_PWM_Start(&htim16,TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim17,TIM_CHANNEL_1);
给变量赋值
PA6_frq=80000000/8000/TIM16->ARR+1;
PA7_frq=80000000/4000/TIM17->ARR+1;
TIM16->CCR1=PA6_duty;
TIM17->CCR1=PA7_duty;
按键改变变量
uint8_t key_scan(void)
{
uint8_t key_val=0;
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET)
{
key_val=1;
}
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET)
{
key_val=2;
}
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==GPIO_PIN_RESET)
{
key_val=3;
}
if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==GPIO_PIN_RESET)
{
key_val=4;
}
return key_val;
}
void key_proc(void)
{ key_val=key_scan();
key_down=key_val&(key_val^key_old);
key_up=~key_val&(key_val^key_old);
key_old=key_val;
if(key_down==1)
{
PA6_duty+=10;
if(PA6_duty==100) PA6_duty=10;
TIM16->CCR1=PA6_duty;
}
if(key_down==2)
{
PA7_duty+=20;
if(PA7_duty==100) PA7_duty=20;
TIM17->CCR1=PA7_duty;
}
if(key_down==3)
{
}
if(key_down==4)
{
}
}
LCD显示
void lcd_proc(void)
{
sprintf(buf," PA6_frq:%dHZ ",PA6_frq);
LCD_DisplayStringLine(Line5,(uint8_t*)buf);
sprintf(buf," PA7_frq:%dHZ ",PA7_frq);
LCD_DisplayStringLine(Line6,(uint8_t*)buf);
sprintf(buf," PA6_duty:%d%% ",PA6_duty);
LCD_DisplayStringLine(Line7,(uint8_t*)buf);
sprintf(buf," PA7_duty:%d%% ",PA7_duty);
LCD_DisplayStringLine(Line8,(uint8_t*)buf);
}