/*串口1发送一个字节*/
void Uart1_Send8bit(alt_u8 data)
{
alt_u8 status ;
while(((status = IORD_16DIRECT(UART_1_BASE,8) & 0x40) != 0x40)) ; //等待缓存里面的数据发送完毕
status = IORD_16DIRECT(UART_1_BASE,8) ;//再次读取清除状态寄存器
IOWR_8DIRECT(UART_1_BASE,4,data) ;
}
/*从串口1发送n个字符*/
void Uart1_SendNByte(char *str,int n)
{
while(n--)
{
Uart1_Send8bit(*str) ;
str++ ;
}
}
/*从串口uart1 发出信息的的类似printf函数*/
void Uart1_printf(const char *format,...)
{
va_list args;
int n;
static char xmon_outbuf[1024];
va_start(args, format);
n = vsnprintf(xmon_outbuf, sizeof(xmon_outbuf), format, args);
va_end(args);
Uart1_SendNByte(xmon_outbuf, n);
}
NISO下的任意串口类printf函数的实现
最新推荐文章于 2021-02-24 17:31:09 发布