单片机/MCU论坛
直播中

李凤津

7年用户 985经验值
私信 关注

XMC1402串口半双工接收异常,导致数据丢帧的原因?

一、 测试环境/硬件/软件描述
         1  . 型号 XMC1402 ,开发环境 :DAVETM   IAR
          2. 客户使用XMC1402 USIC1 ,将TXD/RXD管脚分别串电阻及上拉电阻后进行半双工通讯,如下所示
      

      3   异常现象如下
         3.1 XMC1402接收到完整数据帧后并未回复,导致数据丢帧,见下图
        

  3.2检查异常接收数据帧发现,在头码字节未接收完成就提前产生了一次接收中断,导致应用程序处理异常进入接收中断函数处理数据,见下图:


3.3 代码如下
  


                                                                                                                                                                                                                                                                                                                                                                                                

回帖(1)

丁冬芹

2024-2-1 17:10:11
根据描述,导致XMC1402串口半双工接收异常,导致数据丢帧的原因可能有以下几种可能性:

1. 硬件连接问题:由于使用了串联电阻和上拉电阻,可能存在连接不良或电阻值不合适的情况,导致信号传输出现问题。

2. 通讯参数设置错误:可能是配置了错误的波特率、数据位、停止位等通讯参数,导致接收端无法正确解析数据。

3. 缓冲区溢出:由于接收端处理数据速度慢于发送端发送数据的速度,导致接收缓冲区溢出,从而造成数据丢帧。

4. 中断触发问题:可能是中断优先级设置错误或者中断处理程序中存在问题,导致接收中断无法正确触发和处理。

为了解决这个问题,可以进行以下几个方面的调试和优化:

1. 确认硬件连接正确并稳定,检查电阻值是否合适,确保信号传输的可靠性。

2. 仔细检查通讯参数的设置,确保发送端和接收端的参数一致,并且符合串口通讯的标准。

3. 针对缓冲区溢出问题,可以增加接收缓冲区的大小,或者改用DMA方式进行数据传输。

4. 检查中断配置和中断处理程序的正确性,确保中断可以正确触发和处理。

另外,根据现象描述,在接收到完整数据帧后未回复导致数据丢帧的问题可能也与软件的逻辑有关。可能需要仔细检查代码,确认接收到完整数据帧后是否正确发送回复,并检查回复的处理逻辑是否正确。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分