PIC16F690 串口通信问题,拜托各位帮忙,将完整C程序附上,能发不能收!!!!【恢复】

2020-02-06 10:26发布

 串口通信,与PC机通信,可以发送但是不能接收,以下是我的程序,请指教啊!!!! 

   void interrupt ISrR(void) 

  { 

    if(RCIF&&RCIE) //判断是否为串口接收中断 

     { 

        RCIF=0; 

        PORTC_2=!PORTC_2;   //指示灯的作用,发现只能进一次中断,在上电的时候 

        if(OERR)  

         {                

              CREN=0;CREN=1; 

            } 

         

     } 

  }  

void main(void) 

{   

   unsigned char j; 

   SPBRG=25;   //波特率设为9600 

   TXSTA=0x24;//使能发送 

   RCSTA=0x90;// 使能接收 

   RCIF=0;    //清零外部中断  

   GIE=1;     //开放全局中断 

   PEIE=1;    //使能外设中断 

   TRISC=0x00;//将PORC定为输出 

   TRISB=0x20;//将PORB RXD 设为输入口,TXD 设为输出口 

   PORTC_2=0; 

   PORTC_4=1; //485通信片选,发送使能                            

      for(j=0;j<3;j++) 

          { 

          TXREG=0x69; 

          while(!TRMT);//如果发送在正在进行,那么等待 

         } 

  PORTC_4=0; //485通信片选,接收发送使能  

  RCIE=1;    //使能接收中断 

  while(1); //等待接收中断  

 } 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
2d732
2020-02-07 18:24
我也是被这个问题受困很久,看到radarOV123 的
加下以下两句:
    ANSEL  = 0x00;
    ANSELH = 0x00;
后立刻见效。再回头看690的datasheet,结果人家是提到这点的。看来看书不能马虎。

一周热门 更多>