
基于小凌派RK2206开发板:OpenHarmony如何使用IoT接口控制UART外设 原创
1、实验简介
本实验将演示如何在小凌派-RK2206开发板上使用IOT库的UART接口,进行UART编程开发。
例程将创建一个任务,通过配置UART引脚,实现UART读写操作。
2、基础知识
UART在日常设备中非常常见,以下我们将演示IOT库的UART接口如何进行UART口配置,以及UART口读写操作。
2.1、头文件
2.2、UART设备初始化:IoTUartInit
描述:
UART设备初始化。
参数:
参数 | 类型 | 描述 |
---|---|---|
id | unsigned int | UART ID |
param | const IotUartAttribute * | UART配置参数 |
UART ID配置和IO复用如下表:
串口 | id | TX | RX |
---|---|---|---|
UART0 | EUART0_M0 | GPIO0_PB7 | GPIO0_PB6 |
UART0 | EUART0_M1 | GPIO0_PC7 | GPIO0_PC6 |
UART1 | EUART1_M0 | GPIO0_PC3 | GPIO0_PC2 |
UART1 | EUART1_M1 | GPIO0_PA7 | GPIO0_PA6 |
UART2 | EUART2_M1 | GPIO0_PB3 | GPIO0_PB2 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_uart.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
2.3、取消初始化UART设备:IoTUartDeinit
描述:
取消初始化UART设备。
参数:
参数 | 类型 | 描述 |
---|---|---|
id | unsigned int | UART ID |
UART ID配置和IO复用如下表:
串口 | id | TX | RX |
---|---|---|---|
UART0 | EUART0_M0 | GPIO0_PB7 | GPIO0_PB6 |
UART0 | EUART0_M1 | GPIO0_PC7 | GPIO0_PC6 |
UART1 | EUART1_M0 | GPIO0_PC3 | GPIO0_PC2 |
UART1 | EUART1_M1 | GPIO0_PA7 | GPIO0_PA6 |
UART2 | EUART2_M1 | GPIO0_PB3 | GPIO0_PB2 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_uart.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
2.4、UART设备读取指定长度的数据:IoTUartRead
描述:
UART设备读取指定长度的数据。
参数:
参数 | 类型 | 描述 |
---|---|---|
id | unsigned int | UART ID |
data | unsigned char * | 数据指针 |
dataLen | unsigned int | 数据长度 |
UART ID配置和IO复用如下表:
串口 | id | TX | RX |
---|---|---|---|
UART0 | EUART0_M0 | GPIO0_PB7 | GPIO0_PB6 |
UART0 | EUART0_M1 | GPIO0_PC7 | GPIO0_PC6 |
UART1 | EUART1_M0 | GPIO0_PC3 | GPIO0_PC2 |
UART1 | EUART1_M1 | GPIO0_PA7 | GPIO0_PA6 |
UART2 | EUART2_M1 | GPIO0_PB3 | GPIO0_PB2 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_uart.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
2.5、UART设备写指定长度的数据:IoTUartWrite
描述:
UART设备读取指定长度的数据。
参数:
参数 | 类型 | 描述 |
---|---|---|
id | unsigned int | UART ID |
data | const unsigned char * | 数据指针 |
dataLen | unsigned int | 数据长度 |
UART ID配置和IO复用如下表:
串口 | id | TX | RX |
---|---|---|---|
UART0 | EUART0_M0 | GPIO0_PB7 | GPIO0_PB6 |
UART0 | EUART0_M1 | GPIO0_PC7 | GPIO0_PC6 |
UART1 | EUART1_M0 | GPIO0_PC3 | GPIO0_PC2 |
UART1 | EUART1_M1 | GPIO0_PA7 | GPIO0_PA6 |
UART2 | EUART2_M1 | GPIO0_PB3 | GPIO0_PB2 |
返回值:
返回值 | 描述 |
---|---|
IOT_SUCCESS | 成功 |
IOT_FAILURE | 失败 |
实现:
hal_iot_uart.c
文件在device/rockchip/rk2206/adapter/hals/iot_hardware/wifiiot_lite
目录下。
3、程序设计
主要代码分析
在uart_example
函数中,创建一个任务。
uart_thread
任务中调用IOT库的UART接口配置、读写UART。
4、编译调试
修改 vendor/lockzhiner/rk2206/sample
路径下 BUILD.gn 文件,指定 iot_uart_example
参与编译。
修改 device/lockzhiner/rk2206/sdk_liteos
路径下 Makefile 文件,添加 -liot_uart_example
参与编译。
5、运行结果
示例代码编译烧录代码后,按下开发板的RESET按键,使用杜邦线连接TX和RX,通过串口助手查看日志,显示如下:
