8. UART操作指南

8.1. UART的操作准备如下:

  • 使用SDK发布的kernel。

8.2. 模块编译

  • 源码路径为 drivers/uart。用户需要对 UART 设备进行访问操作时, 首先要在编译脚本里指定 UART 源码路径与头文件路径。编译成功后, out 目录下会生成名为 libuart.a 的库文件。链接时需要通过-luart 参数指定该库文件。

8.3. 操作示例

步骤1:

在初始化函数中调用以下接口,实现 UART 驱动注册:

uart_dev_init();

若启用 dma 接收数据,要进行 dmac 初始化,初始化函数中调用:

cvi_dmac_init();

步骤2:

通过/dev/ttySN 节点调用 open 打开指定 UART

步骤3:

打开 UART 后可调用 ioctl 配置read读取数据,write发送数据,可采用select阻塞read.

步骤4:

不使用UART时,调用close关闭,关闭后UART控制器不再接收串口接收在线的数据.

8.4. 操作示例UART API参考

8.4.1. uart_dev_init

【描述】

UART 设备初始化。

【语法】

int uart_dev_init(void);

【参数】

参数名称

描述

输入/输出

8.4.2. uart_suspend

【描述】

UART 设备挂起。

【语法】

int uart_suspend(void);

【参数】

参数名称

描述

输入/输出

data

保留, 传入NULL

【返回值】

返回值

描述

0

成功

其它

失败

8.4.3. uart_resume

【描述】

UART 设备初唤醒。

【语法】

int uart_resume(void);

【参数】

参数名称

描述

输入/输出

data

未使用, 传入NULL

【返回值】

返回值

描述

0

成功

其它

失败

8.5. ioctl配置说明

【描述】

打开 UART 后,通过 ioctl 配置 UART 波特率,dma 接收,阻塞读取,线控等。
例如,配置波特率:
ret = ioctl(fd, CFG_BAUDRATE, 9600);

【配置说明】

命令号

命令码

参数

说明

UART_CFG_BAUDRATE

0x101

波特率

配置波特率,UART0 默认波特率为 115200;UART1、UART2、UART3 为9600支持最大波特率为 921600。

UART_CFG_DMA_RX

0x102

0或1

0:配置为中断接收方式; 1:配置为 DMA 接收方式默认为中断方式

UART_CFG_DMA_TX

0x103

0或1

0:配置为中断接收方式; 1:配置为 DMA 接收方式默认为中断方式

UART_CFG_RD_BLOCK

0x104

0或1

0:配置为非阻塞方式 read; 1:配置为事件阻塞方式 read 默认为阻塞方式;

UART_CFG_ATTR

0x105

0或1

配置校验位,数据位,停止位,FIFO, CTS/RTS 等 默认值为:无校验位,8 位数据位,1 位 停止位,禁能 CTS/RTS。 参考头文件 struct uart_attr

UART_CFG_PRIV

0x110

自定义

驱动自定命令