您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机PIC24单片机的串口帧错处理 正文
PIC24单片机的串口帧错处理

PIC24单片机的串口帧错处理

点击数:7846 次   录入时间:03-04 12:03:00   整理:http://www.55dianzi.com   PIC单片机

PIC24 单片机 的串口帧错处理

目前在很多 单片机 中,都提供了帧错标志位。就是当串口发生错误时,如没有收到停止位、缓冲区溢出等,给出特定错误标志位,提示串口出现了问题。

 

在大部分 单片机 中,不处理帧错是没有关系的,并不会产生其他影响。但是在PIC单片机中(包括PIC18系列和PIC24系列)却不是这样的,如果不处理帧错,那么串口将停止工作,不能接收发送数据,直到处理了帧错问题后才恢复。

 

在PIC24 单片机 中,处理帧错是比较简单的,它有专门的帧错中断。比如对于串口1(串口号从0开始计算),对应的帧错中断是:

 

        _U2ErrInterrupt

 

先在初始化中允许串口中断和帧错中断:

 

  _U2RXIE = 1;           // 允许串口1接收中断
  _U2TXIE = 1;           // 允许串口1发送中断
  _U2ERIE = 1;           // 允许串口1帧错中断


 

然后在中断理重新设置一下串口:

 

#define ISR(mode) __attribute__((interrupt, mode))

void ISR(auto_psv) _U2ErrInterrupt()
{
  _U2ERIF = 0
  U2MODE = 0;      // 停止串口
  Nop();
  UART1_init();    // 重新初始化串口
}

 

哪些情况下容易产生帧错呢?一个是上电的时候;在就是在有干扰的环境下以及线缆接触不好的情况(插拔线缆的时候)。 
 




本文关键字:单片机  PIC单片机单片机-工控设备 - PIC单片机