找回密码
 立即注册
查看: 665|回复: 15

Ai8A8K64D4串口相关问题

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-11-12 16:40:24 | 显示全部楼层 |阅读模式
本帖最后由 DebugLab 于 2024-11-12 22:40 编辑

大佬们问下,我用Ai8A8K64D4单片机串口2与ESP32通信,能够单独发送和接收数据,但是将两个功能合在一起接收发送数据,单片机就卡死了,这是什么原因呢
下面是程序:

void Uart2() interrupt 8 using 1
{
        IE2=0X00;
    if (S2CON & S2RI)//串口2接受数据
    {
        S2CON &=0x50;


        RX_buffer[RX_num] = S2BUF;                        
        if(RX_buffer[0]=='+')//当第0个数据位是+号时,开始接受数据
        {
               RX_num++;

          if(RX_buffer[RX_num-1]=='-')//如果最后一个数据为-号时,就表示结束
          {
                flag1=1;
                }                                       
                        }
                else {RX_num=0;flag1=0;}        ////当第0个数据位不是+号时,不接受数据               
                        if(RX_num>30) //当数据的长度超过30个,RX_num = 0
                                RX_num = 0;                          
        }
    if (S2CON & S2TI)//串口2发送数据
    {
                        S2CON &=0x50;
         busy2 = 0;                        
                }
                IE2=0X01;
}


主程序

for(;;)
        {
        if(flag1==1)//flag1=1表示数据接受完毕,将接受的数据显示在液晶屏1602上
                {
                Print(0,0, RX_buffer[0]);
                Print(1,0, RX_buffer[1]);
                Print(2,0, RX_buffer[2]);
                Print(3,0, RX_buffer[3]);
                Print(4,0, RX_buffer[4]);
                Print(5,0, RX_buffer[5]);
                Print(6,0, RX_buffer[6]);
                Print(7,0, RX_buffer[7]);
                Print(8,0, RX_buffer[8]);
                Print(9,0, RX_buffer[9]);
                Print(10,0, RX_buffer[10]);
                Print(11,0, RX_buffer[RX_num-5]);
                Print(12,0, RX_buffer[RX_num-4]);
                Print(13,0, RX_buffer[RX_num-3]);
                Print(14,0, RX_buffer[RX_num-2]);
                Print(15,0, RX_buffer[RX_num-1]);
                RX_num = 0;
                flag1=0;                        
                }
                sprintf(dataBuf,"Temp:%3.1fC\r\n",32.5);
                PrintString("AT+CIPSEND=0,12\r\n",17);                //通过ESP32发送数据到手机APP上
                DelayMs(1000);                                
                PrintString(dataBuf,12);

        }

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:240
  • 最近打卡:2025-05-03 15:51:21

22

主题

283

回帖

909

积分

高级会员

积分
909
发表于 2024-11-12 17:39:56 来自手机 | 显示全部楼层
接收
S2CON &=0x52;
发送
S2CON &=0x51;

试一下行不?
REMOVEUNUSED
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-11-12 18:48:45 来自手机 | 显示全部楼层
邮箱 发表于 2024-11-12 17:39
接收
S2CON &=0x52;
发送

不行哦{:5_358:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:235
  • 最近打卡:2025-05-03 08:35:47

61

主题

818

回帖

1498

积分

金牌会员

积分
1498
发表于 2024-11-12 19:42:18 | 显示全部楼层
没有联动过
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:240
  • 最近打卡:2025-05-03 15:51:21

22

主题

283

回帖

909

积分

高级会员

积分
909
发表于 2024-11-12 19:45:34 | 显示全部楼层
本帖最后由 邮箱 于 2024-11-12 19:47 编辑

EA = 1; 写了???

发完整一点程序



仿真看卡在哪了


REMOVEUNUSED
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-11-12 20:39:24 来自手机 | 显示全部楼层
邮箱 发表于 2024-11-12 19:45
EA = 1; 写了???

发完整一点程序

EA=1在程序初始化时,就打开了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-11-12 20:40:30 来自手机 | 显示全部楼层
欢迎哈哈哈3 发表于 2024-11-12 20:39
EA=1在程序初始化时,就打开了

完整程序,只有等下了,我明天再传的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-11-12 20:41:16 来自手机 | 显示全部楼层
zhange 发表于 2024-11-12 19:42
没有联动过

好吧{:5_358:}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-11-12 21:11:55 来自手机 | 显示全部楼层
wnagming 发表于 2024-11-12 20:41
发送接收同时执行,中断方式会强行停止未完成的操作,考虑将波特率设置小一点,或者使用串口DMA。 ...
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-11-12 21:16:38 来自手机 | 显示全部楼层
欢迎哈哈哈3 发表于 2024-11-12 21:11

程序中已经设置过,当进入中断就关闭串口中断的,中断程序结束后再串口中断的
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 22:25 , Processed in 0.160942 second(s), 107 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表