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