⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 learn-lumit-step-18-readme.txt

📁 嵌入式开发试验:串口通讯实验
💻 TXT
字号:

Learn-lumit-Step-18 : 串口通讯实验
++++++++++++++++++++++++++++++++++++++++++++++++++++++

    串口是常用的输入/输出设备,也是一个非常典型的可以用设备驱动模型来
实现的设备:即可以从设备读 read ,也可以向设备写入 write ,同时也可以
打开 open 或者关闭 release ,另外还有控制接口 ioctl 。

    在这个例子里,我们实现了 lumit4510 上的两个串口驱动,并将它们统一
到了 uart_driver.c 这一个文件中,对用户来说,uart 仅是一个设备 device,
但这个设备提供了两个通道 channel 来实现读写和控制。

设备通道选择接口:
uart_ioctl( UART_SELECT_CHANNEL, UART0_BASE );
uart_ioctl( UART_SELECT_CHANNEL, UART1_BASE );

设备通道波特率设置接口:
uart_ioctl( UART_SET_BAUDRATE, baud );

其中常用的几种波特率已经使用宏定义列出了
#define BAUD_19200	(80 << 4)
#define BAUD_38400	(40 << 4)
#define BAUD_57600	(26 << 4)
#define BAUD_115200	(13 << 4)

设备通道发送字符接口:
int uart_write( unsigned char * buf, int count );

设备通道接收字符接口:
int uart_read( unsigned char * buf, int count );


     对于上层应用程序来说,为了方便调用,我们采用了两组接口,
通过明确的含义来提供给用户调用,隐蔽了其中底层的通道选择。

具体可以参考 uart_api.h

int uart0_init( void );

int uart1_init( void );

int uart0_set_baudrate( int baud );

int uart1_set_baudrate( int baud );

int uart0_putchar( char ch );

int uart1_putchar( char ch );

char uart0_getchar( void );

char uart1_getchar( void );

int uart0_puts( char * string );

int uart1_gets( char * string );	

int uart0_gets( char * string );			
			
int uart1_puts( char * string );

int uart_test( void );

    和前面的例子类似,在 uart_api.c 里面,我们提供了一个简单的例子 uart_test,
通过这个例子的代码,大家能够很快学会如何使用 uart api 来编写一个通讯程序的流程。
这些代码都并不太难理解,因此对照芯片手册看一下相关寄存器的设置基本就能明白了。



┌-------------------------------------------------------------------------┐
│                                                                         │
│    Welcome to visit http://www.lumit.org & http://bbs.lumit.org         │
│                                                                         │
│                  [lumit] - let us make it together                      │
│                                                                         │
│                                                                         │
│                                         lumit-admin <admin@lumit.org>   │
│                                                                         │
└-------------------------------------------------------------------------┘

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -