27,377
社区成员
发帖
与我相关
我的任务
分享
/*************************************************************************************
串口初始化函数
**************************************************************************************/
void UART0_Init(void)
{
uint16 Fdiv;
U0LCR = 0x83;
Fdiv = (Fpclk / 16) / UART_BPS; //设置波特率为115200
U0DLM = Fdiv / 256;
U0DLL = Fdiv % 256;
U0LCR = 0x03;
}
/*************************************************************************************
发送一字节数据
**************************************************************************************/
void UART0_SendByte(uint8 data)
{
U0THR = data;
while(0 == (U0LSR & 0x40)); //等待发送完毕
}
/*************************************************************************************
接收一字节数据
**************************************************************************************/
uint8 UART0_RcvByte(void)
{
uint8 rcv_data;
while(0 == (U0LSR & 0x01)); //等待接收完毕
rcv_data = U0RBR;
return (rcv_data);
}
/*************************************************************************************
主程序
**************************************************************************************/
void main()
{
uint8 Rcvdatabuf[10];
uint8 tmpi;
........
PINSEL0 = PINSEL0 | 0x00000005; //设置I/O连接到UART0
UART0_Init(); //初始化串口
........
for(tmpi=0; tmpi<10; tmpi++)
{
Rcvdatabuf[i] = UART0_RcvByte(); /从串口接收数据放入Rcvdatabuf中
}
........
}