这里我用的单片机算是中颖的sh79f9401芯片
UART底层驱动相关函数:
//UART相关寄存器初始化
void Uart_Init(void)
{
PCON = 0x00;//选择SSTAT0
SCON = 0x50;//01000000 方式一
SBRTL = (u8int)(_SBRT & 0xFF);
SBRTH= (u8int)((0x80)|((_SBRT >> 8) & 0xFF));
SFINE = _SFINE;
ES0 = 1;//允许EUART0中断
}
//UART中断服务程序
void EUART_0_ISP(void) interrupt 4
{
if(TI)
{
TI = 0;
Drv_Uart_Tx_It_Handle(UART_PORT_0);
}
if(RI)
{
RI = 0;
Drv_Uart_Rx_It_Handle(UART_PORT_0,SBUF);
}
}
//UART发送一Byte数据
void Drv_Hardware_uart_SendByte(UART_PORT_TYPE ePort,char Data)
{
if(ePort == UART_PORT_0)
{
ACC = Data;
SBUF = ACC;载入要发送的数据
}
}
中间层UART相关函数:
#define _DRV_UART_C_
#include "drv.h"
#include "mw_uart.h"
//这里是发送和接受数据的缓冲区
u8int Uart_0_TxBuf[UART_0_TX_SIZE] = {
0};//UART_0_TX_SIZE在