寮步营销型网站建设,怎么可以自己制作网站,柳市专业网站托管,新闻稿撰写[任务] 要求通过单片机实现以下功能#xff1a; 1.单片机有三种工作模式(定义全局变量MM表示模式#xff0c;MM1#xff0c;2#xff0c;3表示三种不同的模式) LED控制模式 风扇控制模式 蜂鸣器控制模式 2.可以在某一个模式下通过拓展板KEY1按键控制设备 (按…[任务] 要求通过单片机实现以下功能 1.单片机有三种工作模式(定义全局变量MM表示模式MM123表示三种不同的模式) LED控制模式 风扇控制模式 蜂鸣器控制模式 2.可以在某一个模式下通过拓展板KEY1按键控制设备 (按键按下一次设备打开按键再按下一次设备关闭(设备管脚输出反向电平) 3.关于模式的切换可以通过以下两种方式 (通过串口通信电脑端发送当前模式(设置串口接收中断接收到的字符串进行比较) 电脑发送LED、进入LED模式 电脑发送FAN进行风扇控制模式 电脑发送BEE进入蜂鸣器控制模式 通过底板用户自定义按键进行模式切换 .按键按下一次进入发光二极管模式再按一次进入风扇模式再按一下进入蜂鸣器模式 1.按键控制模式转换
void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin)
{//user按键对于GPIO接口为PC12if(GPIO_Pin GPIO_PIN_12){work_model;if(work_model9){work_model1;}}//拓展版KEY1按键为PC9if(GPIO_Pin GPIO_PIN_9){if(work_model%30){//LD1为PC4HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_4);}else if(work_model%31){//风扇为PC6HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_6);}else if(work_model%32){//蜂鸣器为PA15HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_15);}}
}
2.串口输入切换模式
//重写的fputc函数
int fputc(int ch,FILE* fp){HAL_UART_Transmit(huart1,(uint8_t*)ch,1,3);return ch;
}//回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{printf(output:%s\n\r,buf);if(strcmp(buf,LED)0){work_model 0;}if(strcmp(buf,FAN)0){work_model 1;}if(strcmp(buf,BEE)0){work_model 2;}memset(buf,0,sizeof(buf));
}