|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
硬件连接已反复检查,未发现问题。发送数据正常,始终接收不到数据。代码如下:0 G9 V4 B/ @2 b! @% h$ e! z# d
/ h6 \! F3 a) | ?0 m, b
- void USART_Init(void) // 串口初始化
- {
- ODCON3bits.U2OD = 0;
- PMD0bits.UART2MD = 0; //使能串口2
- /*Init USART Port*/
- TRISGbits.TRISG2 = 1; //RX2, 即TRISG异步串行接收数据输入
- TRISGbits.TRISG1 = 0; //TX2, TRISG<1> bit must be cleared (= 0) for Asynchronous and Synchronous Master modes
- /*Init USART Register*/
- TXSTA2 = 0B00100100; //TRANSMIT STATUS AND CONTROL REGISTER:CSRC TX9 TXEN SYNC SENDB BRGH TRMT TX9D
- RCSTA2 = 0B10010000; //SRECEIVE STATUS AND CONTROL REGISTER:SPEN RX9 SREN CREN ADDEN FERR OERR RX9D
- BAUDCON2 = 0B01001000; //BAUD RATE CONTROL REGISTER:ABDOVF RCIDL RXDTP TXCKP BRG16 - WUE ABDEN
- /*Init Baund*/
- SPBRG2 = 207; //9600bps: TXSTA2bits.BRGH = 1;BAUDCON2bits.BRG16 = 1;
- SPBRGH2 = 0x00;
- PIE3bits.RC2IE = 1;
- PIR3bits.RC2IF = 0;
- }
- void interrupt pic18(void) //中断服务程序
- {
- if (PIR3bits.RC2IF == 1) {
- if (RCSTA2bits.FERR2) {
- // error = RCREG2;
- }
- if (RCSTA2bits.OERR2) {
- RCSTA2bits.CREN = 0; //清零错误位
- } else { //检查接收状态,如果接收时无错误,则读取接收数据
- com_receiver_buffer[com_receive_pointer] = RCREG2;
- receive_end = 0x01; //接收完成
- }
- }
- }
R, J/ @, C2 D " r' }( ^% J. E: @7 p+ P5 Y
; O! A& R# F' u0 O* ~- ^$ Y$ D
|
|