急求UART问题!!!!!

2019-03-25 19:42发布

紧急求助!!!!哪位高手指点一下,问题到底在哪里!!!谢谢了!!! 我用PIC24F16KA102单片机的UART1做串口通信程序,现在有个很棘手的问题:可以发送出去,但是接收不了(接收状态标志没有,也没有产生中断)。 下面是我的设置和接收程序: void uart1_init(void)
{
 IEC0bits.U1RXIE = 0;   //Disable Receive Interrupt 
 IEC0bits.U1TXIE = 0;   //Disable Receive Interrupt 
 U1STAbits.UTXEN = 0;   //Disable Transmit
 U1MODEbits.UARTEN = 0;   //Disable uart1   U1BRG = 51;      //FCY/(16*2400)-1=51.083  IPC3bits.U1TXIP = 5;   // 设置uart1接收中断优先级为5
 IPC2bits.U1RXIP = 5;   // 设置uart1接收中断优先级为5  U1STA = 0;  U1MODE = 0x8000;     //Enable Uart for 8-bit data,no parity,1 STOP bit,wake enabled 
 Nop();Nop();
 U1STAbits.UTXEN = 1;   //Enable Transmit  U1STAbits.URXDA = 0;
 IFS0bits.U1TXIF = 0;            // 清UART1发送中断标志位
 IFS0bits.U1RXIF = 0;            // 清UART1接收中断标志位
 
 IEC0bits.U1RXIE = 1;   //Enable Receive Interrupt
}   void __attribute__((interrupt,no_auto_psv)) _U1RXInterrupt(void)
{    IFS0bits.U1RXIF = 0;                        // 清UART1接收中断标志位
 
  if(uart1_rec_counter < 10)
  {
      uart1_rec_buffer[uart1_rec_counter] = U1RXREG;     // 接收数据
      uart1_rec_counter++;                    // 接收数据计数器加1
   
  }
  else
  {
   uart1_rec_counter = 0;                    // 接收数据计数器加1
   break;
  }     if(U1STAbits.OERR)     U1STAbits.OERR = 0;
 U1MODE = 0x8000;     //Enable Uart for 8-bit data,no parity,1 STOP bit,wake enabled 
 Nop();Nop();
 U1STAbits.UTXEN = 1;   //Enable Transmit
 IEC0bits.U1RXIE = 1;   //Enable Receive Interrupt
}   紧急求助!!!!哪位高手指点一下,问题到底在哪里!!!谢谢了!!! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
hbkmcq
1楼-- · 2019-03-26 03:01
??????????
hbkmcq
2楼-- · 2019-03-26 06:00
还没人看啊!!!急啊 !!
hbkmcq
3楼-- · 2019-03-26 10:15
??????????????????????
zzkk9119
4楼-- · 2019-03-26 12:04
请问楼主解决了没有
luo12180127
5楼-- · 2019-03-26 14:20

用示波器查看,是否有数据到RX PIN,若是EUART发送完后,要将总线接高,RX才能够收到。。

 

贝能电子

QQ:369015460

一周热门 更多>