想用PIC16f1783实现串口通信自发自收,以下程序哪里有问题,请教高手指导,万分感谢

2019-03-25 19:10发布

想用PIC16F1783实现串口自发自收,外部晶振用的16M晶振,程序如下:
#include<pic.h>
#define uchar unsigned char
#define uin?t unsigned int
__CONFIG(0x0982);
__CONFIG(0x1AFF);
uchar recdata;
void Delay_ms(uint xms)
{
   int i,j;
   for(i=0;i<xms;i++)
      {for(j=0;j<71;j++);}
}
void initUSART()
{
   SPBRG=0x19;
   TXEN=1;
   CREN=1;
   SYNC=0;
   SPRN=1;
   TXSEL=0;
   RXSEL=0;
   SCKP=0;
   BRG16=0;
   RCIE=1;
   TXIE=1;
   TRISC6=0;
   TRISC7=1;
   TXSTA=0X24;
   RCSTA=0X90;
   GIE=1;
   PEIE=1;
}
void main()
{
   initUSART()
   while(1)
   {
      PORTC=recdata;
   }
   Delay_ms(10);
}
void interrupt usart(void)
{
   if(RCIF)
   {
      RCIF=0;
      recdata=RCREG;
      TXREG=recdata;
   }
}
用示波器测试晶振是可以起振的,用串口调试助手自发自收,波特率设置9600,发送的时候电路板上接收指示灯闪烁,但是发送指示灯毫无反应,请教高手指点一下上述程序哪里有问题,万分感谢。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。