⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.c

📁 p89lpc915程序
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -