#include "config.h"
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly > 0; dly--)
for(i = 0; i < 50000; i ++);
}
#define UART_BPS 115200
void UART0_Init(void)
{
uint16 Fdiv;
U0LCR = 0x83; //决定发送和接收的数据字符格式, 0x1000 0011 8位字符长度,1个停止位,禁止奇偶校验
Fdiv = (Fpclk / 16) / UART_BPS;
U0DLM = Fdiv /256;
U0DLL = Fdiv % 256;
U0LCR = 0x03; //设制好波特率后,再关闭不让设制。
}
uint8 UART0_GetByte(void)
{
uint8 rcv_dat;
while((U0LSR & 0x01) == 0);//U0LSR 线状态寄存器,提供UART Rx,Tx模块的状态信息;这里是判断是否接收数据就绪。
rcv_dat = U0RBR;//接收缓存寄存器
return(rcv_dat);
}
void UART0_GetStr(uint8 *s,uint32 n)
{
for(;n > 0;n --)
{
*s++ = UART0_GetByte();
}
}
void UART0_SendByte(uint8 dat)
{
U0THR = dat; //U0THR 发送保持寄存器
while((U0LSR & 0x40) == 0); //发送器空,等U0THR为空。也就是等它发送完成。
}
void UART0_SendStr(uint8 const *str)
{
while(1)
{
if(*str == '
void DelayNS(uint32 dly)
{
uint32 i;
for(; dly > 0; dly--)
for(i = 0; i < 50000; i ++);
}
#define UART_BPS 115200
void UART0_Init(void)
{
uint16 Fdiv;
U0LCR = 0x83; //决定发送和接收的数据字符格式, 0x1000 0011 8位字符长度,1个停止位,禁止奇偶校验
Fdiv = (Fpclk / 16) / UART_BPS;
U0DLM = Fdiv /256;
U0DLL = Fdiv % 256;
U0LCR = 0x03; //设制好波特率后,再关闭不让设制。
}
uint8 UART0_GetByte(void)
{
uint8 rcv_dat;
while((U0LSR & 0x01) == 0);//U0LSR 线状态寄存器,提供UART Rx,Tx模块的状态信息;这里是判断是否接收数据就绪。
rcv_dat = U0RBR;//接收缓存寄存器
return(rcv_dat);
}
void UART0_GetStr(uint8 *s,uint32 n)
{
for(;n > 0;n --)
{
*s++ = UART0_GetByte();
}
}
void UART0_SendByte(uint8 dat)
{
U0THR = dat; //U0THR 发送保持寄存器
while((U0LSR & 0x40) == 0); //发送器空,等U0THR为空。也就是等它发送完成。
}
void UART0_SendStr(uint8 const *str)
{
while(1)
{
if(*str == '