此代码可用于STM32控制风扇转速(电机转速),加上无线红外控制系统之。
extern void PWM_IN1IN2(void);
extern void TIM3_PWM_Init();
int main(void)
{
u8 key;
u16 led0pwmval=0;
u8 dir=1;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
LED_Init(); //LED端口初始化
Remote_Init(); //红外接收初始化
delay_init(); //延时函数初始化
PWM_IN1IN2(); //使能初始化
TIM3_PWM_Init(899,0); //不分频。PWM频率=72000000/900=80Khz
while(1)
{
key=Remote_Scan();
switch(key)
{
case 162:
if(dir)led0pwmval=500;
delay_ms(10);
TIM_SetCompare2(TIM3,led0pwmval);
GPIO_SetBits(GPIOA,GPIO_Pin_2);
;break; //1
case 98:
{
if(dir)led0pwmval=700;
delay_ms(10);
TIM_SetCompare2(TIM3,led0pwmval);
GPIO_SetBits(GPIOA,GPIO_Pin_2);
}
;break; //2
case 226:
if(dir)led0pwmval=899;
delay_ms(10);
TIM_SetCompare2(TIM3,led0pwmval);
GPIO_SetBits(GPIOA,GPIO_Pin_2)
;break; //3
case 34: GPIO_ResetBits(GPIOA,GPIO_Pin_2);
delay_ms(10);
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
GPIO_SetBits(GPIOB,GPIO_Pin_5);
GPIO_SetBits(GPIOE,GPIO_Pin_5);
;break; //4
}
}
}
全部程序51hei下载地址:
红外遥控控制风扇速度.7z
(208.33 KB, 下载次数: 79)
|