- #include <cms.h>
-
- unsigned char UART_RX_COUNT;
- unsigned char UART_RX_BUFF[10];
-
-
- void UART_INIT() //串口初始化
- {
-
- SPBRG = 102; //设置波特率为9600 bps,误差0.16%
- SYNC = 0; //0为异步模式,1为同步模式
- SCKP = 0;
- SPEN = 1; //允许串口操作
- RCIE = 1; //接收中断
- TXIE = 0; //发送中断
- RX9EN = 0; //0为8位接收,1为9位接收
- TX9EN = 0; //0为8位发送,1为9位发送
- CREN = 1; //0为禁止接收,1为使能接收
- TXEN = 1; //0为禁止发送,1为使能发送
-
-
- }
-
- void UART_SEND_DATA(unsigned char DATA) //串口发送数据
- {
- TXREG=DATA;
- while(TRMT==0);
- }
-
-
- void interrupt time0(void) //串口接收中断
- {
- if(RCIF)
- {
- if(FERR)
- {
- RCREG; //帧错误
- return;
- }
-
- UART_RX_BUFF[UART_RX_COUNT] = RCREG; //将接收缓冲区内容读出
- if(UART_RX_COUNT<9) UART_RX_COUNT++;
-
- if(OERR) //如果有溢出错误
- {
- CREN = 0; //清零CREN位可将OERR位清零
- CREN = 1; //再次将CREN置一,以允许继续接收
- }
-
- }
-
-
- }