最近新接触了PIC单片机,做了一个串口通讯程序,出现些问题,说明: 上位机发送数据,单片机接收到再返回上位机,波特率 9600 数据位 8位 停止位 1 位,没有校验,上位机周期发送延时 1 MS,收发正常,当我用其与倾角传感器通讯时确只能在一通电时可以收到3个数据,之后就再也读不到数据了,这是为什么?难道PIC的速度不够快?(注:倾角传感器已和AVR单片机通讯正常),如果是程序有问题那和PC机通讯一切正常???请有经验的朋友相告之,谢谢! 单片机:外部晶振11.0592M 程序如下 /***************************************************
PIC16F877A 串口通讯子程序 要改变波特率只要改变 #define BAUD 9600 的值
****************************************************/
#define FOSC 11059200 //晶振 #define BAUD 9600 //波特率
void init_UART(void) { TXSTA = 0x20;// 接收使能,异步工作 低速波特率 RCSTA = 0x90;//RC6/RC7设置串口通讯,8位数据 ,连接接收, RCIE = 0;//禁止中断 SPBRG = FOSC/BAUD/64-1; //设置发送接收波特率 9600 } /*==================================================== 【函数原形】: void UART_TXD(uint8_t UARTdata) 【参数说明】: 【功能说明】: |