📄 uart_api.c
字号:
/*
* uart_api.c - uart api ( user-level )
*
* Author: li ming <admin@lumit.org>
* Date: 2005-6-11
* Copyleft: http://www.lumit.org
*/
#include "uart_api.h"
#include <string.h>
#include <stdio.h>
#define NULL 0
/* ************************************************************************ */
int uart0_init( void )
{
uart_open( UART0_BASE );
return 0;
}
int uart1_init( void )
{
uart_open( UART1_BASE );
return 0;
}
/* ************************************************************************ */
int uart0_set_baudrate( int baud )
{
uart_ioctl( UART_SELECT_CHANNEL, UART0_BASE );
uart_ioctl( UART_SET_BAUDRATE, baud );
return 0;
}
int uart1_set_baudrate( int baud )
{
uart_ioctl( UART_SELECT_CHANNEL, UART1_BASE );
uart_ioctl( UART_SET_BAUDRATE, baud );
return 0;
}
/* ************************************************************************ */
int uart0_putchar( char ch )
{
uart_ioctl( UART_SELECT_CHANNEL, UART0_BASE );
uart_write( (unsigned char *)&ch, 1 );
return 0;
}
int uart1_putchar( char ch )
{
uart_ioctl( UART_SELECT_CHANNEL, UART1_BASE );
uart_write( (unsigned char *)&ch, 1 );
return 0;
}
char uart0_getchar( void )
{
char ch;
uart_ioctl( UART_SELECT_CHANNEL, UART0_BASE );
uart_read( (unsigned char *)&ch, 1 );
if( ch != '\r' )
uart0_putchar( ch );
return ch;
}
char uart1_getchar( void )
{
char ch;
uart_ioctl( UART_SELECT_CHANNEL, UART1_BASE );
uart_read( (unsigned char *)&ch, 1 );
if( ch != '\r' )
uart1_putchar( ch );
return ch;
}
int uart0_puts( char * string )
{
uart_ioctl( UART_SELECT_CHANNEL, UART0_BASE );
uart_write( (unsigned char *)string, strlen(string) );
return 0;
}
int uart1_puts( char * string )
{
uart_ioctl( UART_SELECT_CHANNEL, UART1_BASE );
uart_write( (unsigned char *)string, strlen(string) );
return 0;
}
int uart0_gets( char * string )
{
char ch;
int i = 0;
uart_ioctl( UART_SELECT_CHANNEL, UART0_BASE );
while(1)
{
ch = uart0_getchar();
*(string+i) = ch;
if( ch == '\r' )
{
*(string+i) = '\0';
break;
}
i++;
}
return 0;
}
int uart1_gets( char * string )
{
char ch;
int i = 0;
uart_ioctl( UART_SELECT_CHANNEL, UART1_BASE );
while(1)
{
ch = uart1_getchar();
*(string+i) = ch;
if( ch == '\r' )
{
*(string+i) = '\0';
break;
}
i++;
}
return 0;
}
int uart_test( void )
{
int i = 0;
char ch;
char str[64];
char read[64];
uart0_init();
uart1_init();
uart0_set_baudrate( BAUD_19200 );
uart1_set_baudrate( BAUD_19200 );
uart0_puts( "Please use UART1 on lumit4510 board to test this program! \r\n" );
while(1)
{
sprintf( str, "\r\n-----------------\r\nUART Test No.%d: \r\n", i++ );
uart1_puts( str );
uart1_puts( "Please input a char: " );
ch = uart1_getchar();
sprintf( str, "\r\nYou input char: %c \r\n", ch );
uart1_puts( str );
uart1_puts( "Please input a string: " );
uart1_gets( read );
sprintf( str, "\r\nYou input string: %s ", read );
uart1_puts( str );
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -