uart.c
来自「p89lpc915程序」· C语言 代码 · 共 70 行
C
70 行
#ifdef PH_932
#include <reg915.h>
#include "comm.h"
#include "message.h"
#include "uart.h"
char sbuf_value = 0;
char rs232_command[6] = {0,0,0,0,0,0};
char rs232_state = UART_IDLE;
char rs232_cnt = 0;
uchar last_sbuf_value = 0;
bit rs232_flag = 0;
void uart_isr() interrupt 4 using 2
{
if(RI)
{
sbuf_value = SBUF;
RI = 0;
if(rs232_state == UART_IDLE)
{
if(sbuf_value == STX) /*start*/
{
rs232_state = UART_RECEIVE;
}
rs232_cnt = 0;
last_sbuf_value = 0xFF;
}
else if(rs232_state == UART_RECEIVE)
{
if(rs232_cnt >= 6)
{
rs232_state = UART_IDLE;
}
else
{
if(last_sbuf_value == DLE)
{
if(sbuf_value == DLE)
{
rs232_command[rs232_cnt ++] = sbuf_value;
last_sbuf_value = 0xFF;
}
else if(sbuf_value == ETX)
{
rs232_state = UART_RECEIVE_OK;
last_sbuf_value = 0xFF;
rs232_cnt = 0;
}
else
{
rs232_state = UART_IDLE;
}
}
else
{
if(sbuf_value != DLE)
rs232_command[rs232_cnt++] = sbuf_value;
last_sbuf_value = sbuf_value;
}
}
}
}
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?