基于STM32双机串口交互

该实验使用KEIL5和Proteus8.12进行32位单片机间的串口通信仿真,模拟车机主控与驱动板数据交换。通过按键调整数据,模拟数值浮动,并在LCD1602上显示SOC百分比和行驶公里数。代码中实现串口初始化、按键操作及数据显示功能。
摘要由CSDN通过智能技术生成
  • 本次实验开发环境KEIL5,仿真环境Proteus 8.12版本,如有版本过低可能失败,主要实验内容两个32单片机进行交互数据传输,模拟车机主控与驱动板传感器发送数据,用按键手动调整数据,模拟数据浮动,并显示车机屏幕,实验器材,两块32单片机,按键,电源,电阻,led灯,LCD1602,虚拟串口,串口终端。仿真视频bandicam 2023 02 07 17 55 47 334_视频

int main(void)
{        
         vu8 key=0;  
        u8 t;
        u8 len;        
        u16 times=0;
  u16 SOC=100;
         u16 KM=300;
         u8 a,b,c;
         u8 d,e,f;
         
        Stm32_Clock_Init(9); //系统时钟设置
//        delay_init();                     //延时函数初始化         
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
        uart_init(9600);         //串口初始化为9600
        LED_Init();                           //初始化与LED连接的硬件接口
// KEY_Init();
         LCD1602_Init();
         LCD1602_ShowStr(2,0,"SOC                                 %",10);
         LCD1602_ShowStr(2,1,"Range     km",12);


        for(t=0;t<10;t++)
        {
                Array[t]=t;
        }


        while(1)
        {




if(USART_RX_BUF[0]==0x00)
{//加


                hxf_delay_s(2);
                LED5=!LED5;
                SOC+=1;
                KM+=3;
if(SOC>100){SOC=100;}
if(KM>300){KM=300;}
        a=SOC/100;
        b=SOC%100/10;
        c=SOC%10;
        LCD_ShowNum(7,0,a);        
        LCD_ShowNum(8,0,b);
        LCD_ShowNum(9,0,c);


        d=KM/100;
        e=KM%100/10;
        f=KM%10;
        LCD_ShowNum(9,1,d);        
        LCD_ShowNum(10,1,e);
        LCD_ShowNum(11,1,f);


hxf_delay_s(2);
                USART_SendData(USART1, 0x00);
hxf_delay_s(2);
                USART_SendData(USART1, 0x01);
hxf_delay_s(2);
                USART_SendData(USART1, 0x02);
hxf_delay_s(2);
                USART_SendData(USART1, 0x03);
hxf_delay_s(2);
                USART_SendData(USART1, 0xaa);
}
if(USART_RX_BUF[0]==0x02)
{//减
                hxf_delay_s(2);
                LED3=!LED3;
if(SOC>0){SOC-=1;}
if(KM>0){KM-=3;}
        a=SOC/100;
        b=SOC%100/10;
        c=SOC%10;
        LCD_ShowNum(7,0,a);        
        LCD_ShowNum(8,0,b);
        LCD_ShowNum(9,0,c);


        d=KM/100;
        e=KM%100/10;
        f=KM%10;
        LCD_ShowNum(9,1,d);        
        LCD_ShowNum(10,1,e);
        LCD_ShowNum(11,1,f);


hxf_delay_s(2);
                USART_SendData(USART1, 0x02);
hxf_delay_s(2);
                USART_SendData(USART1, 0x01);
hxf_delay_s(2);
                USART_SendData(USART1, 0x02);
hxf_delay_s(2);
                USART_SendData(USART1, 0x03);
hxf_delay_s(2);
                USART_SendData(USART1, 0xaa);
}

基于STM32双机串口交互仿真

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Proteus是一款电子设计自动化软件,而STM32是一系列32单片机产品,双机通信是指两个STM32单片机进行通信的功能。 要在Proteus中实现STM32双机通信,需要进行以下步骤: 1. 首先,我们需要下载并安装Proteus软件。可以从官方网站或其他可靠的软件下载网站获得。 2. 下载和安装Proteus的STM32库文件。这些库文件包含了STM32系列单片机的模型和相关引脚定义。可以从官方网站或其他资源网站上找到这些库文件。 3. 导入STM32库文件到Proteus软件中。在Proteus软件的库管理器中导入STM32库文件,并选择需要使用的单片机型号。 4. 在Proteus中设计STM32双机通信电路。使用Proteus软件的电路设计功能,连接两个STM32单片机,并添加适当的外部电路,如串口或SPI接口等。 5. 在Proteus中添加程序代码。使用STM32开发环境(如Keil等)编写双机通信的程序代码,并将生成的可执行文件(.hex或.bin格式)导入Proteus中。 6. 仿真和调试。在Proteus中进行仿真和调试,检查双机通信是否正常。可以通过模拟串口通信或SPI接口通信等方式进行测试。 7. 文件下载。一旦仿真和调试通过,可以将程序代码烧录到实际的STM32单片机中。这可以通过将Proteus和真实硬件进行连接,并使用适当的工具进行下载和烧录。 总之,Proteus是一个功能强大的软件工具,可以用于设计和仿真STM32双机通信电路。通过合适的硬件连接和正确的设置,可以在Proteus中实现双机通信的仿真和调试,并将程序代码下载到实际的STM32单片机中运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值