概述
使用虚拟串口虚拟串口教程(提供教程)添加两路串口,通过串口软件与proteus中的stm32单片机通信,发送对应的指令,单片机做出对应的操作,电机转动模拟空调 仿真软件:proteus版本8.11 其他版本运行仿真会有问题 代码编写:keil5 基于HAL库 led模拟房间灯光,电机模拟室内空调 printf(“\r\n 这是一个简单的智能家居仿真模拟\r\n”); printf(“使用 USART 参数为:%d 8-N-1 \r\n”,DEBUG_USART_BAUDRATE); printf(" 指令 ------ 操作 \r\n"); printf(" 1 ------ 房间1亮 \r\n"); printf(" 2 ------ 房间2亮 \r\n"); printf(" 3 ------ 全灭 \r\n"); printf(" 4 ------ 空调开 \r\n"); printf(" 5 ------ 空调关 \r\n");
一、仿真效果
演示视频:https://www.bilibili.com/video/BV1va41177Lh/ ![在这里插入图片描述](https://img-blog.csdnimg.cn/c4a7014e471c45dba4a39611c657346f.png)
二、代码
int main(void)
{
char ch;
SystemClock_Config();
/* 初始化USART */
DEBUG_USART_Config();
LED_GPIO_Config();//灯
PUMP_GPIO_Config();//电机
/* 打印指令输入提示信息 */
Show_Message();
while(1)
{
/* 获取字符指令 */
ch=getchar();
// printf("接收到字符:%c\n",ch);
/* 根据字符指令控制RGB彩灯颜色 */
switch(ch)
{
case '1':
LED1_ON;
printf("房间1灯亮:%c\r\n",ch);
break;
case '2':
LED2_ON;
printf("房间2亮:%c\r\n",ch);
break;
case '3':
LED1_OFF;
LED2_OFF;
printf("灯全灭:%c\r\n",ch);
break;
case '4':
PUMP_ON;
printf("空调开:%c\r\n",ch);
break;
case '5':
PUMP_OFF;
printf("空调关:%c\r\n",ch);
break;
default:
/* 如果不是指定指令字符,打印提示信息 */
// Show_Message();
break;
}
}
}
/**
* @brief 打印指令输入提示信息
* @param 无
* @retval 无
*/
static void Show_Message(void)
{
printf("\r\n 这是一个简单的智能家居仿真模拟\r\n");
printf("使用 USART 参数为:%d 8-N-1 \r\n",DEBUG_USART_BAUDRATE);
printf(" 指令 ------ 操作 \r\n");
printf(" 1 ------ 房间1亮 \r\n");
printf(" 2 ------ 房间2亮 \r\n");
printf(" 3 ------ 全灭 \r\n");
printf(" 4 ------ 空调开 \r\n");
printf(" 5 ------ 空调关 \r\n");
}
三、获取代码仿真
关注公众号获取代码+仿真
|