小凌派-RK2206开发板:UART控制案例

描述

小凌派-RK2206开发板:UART控制案例

一、简介

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。它将要传输的资料在串行通信与并行通信之间加以转换。作为把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。

本文基于瑞芯微RK2206芯片 + OpenHarmony系统,通过uart控制实现PC和开发板的互相通信功能。

二、硬件电路设计

模块整体硬件实物图如下图所示。电路比较简单,这边不对电路进行说明。

小凌派

图1 电路实物图图

三、程序设计

UART控制主要分为UART初始化和UART收发。

1、UART初始化

这部分代码为uart初始化的代码。首先用 LzUartDeinit() 函数将串口释放掉;其次用PinctrlSet()将GPIO0_PB6复用为UART0_RX_M0,GPIO0_PB7复用为UART0_TX_M0。最后调用 LzUartInit()函数初始化uart。源代码如下所示:


 

1/* 释放UART设备 */

2.LzUartDeinit(UART_ID);

3.
 

4./* 配置UART */

5.attr.baudRate = 115200;

6.attr.dataBits = UART_DATA_BIT_8;

7.attr.pad = FLOW_CTRL_NONE;

8.attr.parity = UART_PARITY_NONE;

9.attr.rxBlock = UART_BLOCK_STATE_NONE_BLOCK;

10.attr.stopBits = UART_STOP_BIT_1;

11.attr.txBlock = UART_BLOCK_STATE_NONE_BLOCK;

12.
 

13./* TX和RX引脚配置 */

14.PinctrlSet(GPIO0_PB6, MUX_FUNC2, PULL_KEEP, DRIVE_LEVEL2);

15.PinctrlSet(GPIO0_PB7, MUX_FUNC2, PULL_KEEP, DRIVE_LEVEL2);

16.
 

17./* 初始化UART  */

18.ret = LzUartInit(UART_ID, &attr);

19.if (ret != LZ_HARDWARE_SUCCESS)

20.{

21.    printf("%s, %d: LzUartInit(%d) failed!\n"__FILE____LINE__, ret);

22.    return;

23.}


 

2、UART发送

具体uart写操作如下:

1./* 控制UART发送字符串 */

2.ret = LzUartWrite(UART_ID, str, strlen(str));

3.if (ret != LZ_HARDWARE_SUCCESS)

4.{

5.    printf("%s, %d: LzUartWrite(%d) failed!\n", __FILE__, __LINE__, ret);

6.    return;

7.}


 

3、UART接收

具体uart读操作如下:

8./* 控制UART发送字符串 */

9.ret = LzUartRead(UART_ID, str, 10);

10.if (ret != LZ_HARDWARE_SUCCESS)

11.{

12.    printf("%s, %d: LzUartRead(%d) failed!\n", __FILE__, __LINE__, ret);

13.    return;

14.}


 

四、编译过程

1、搭建和下载源代码

我已将OpenHarmony源代码上传到Gitee社区中,大家可以根据以下网址下载。

https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts

本文使用的案例网址如下:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts/tree/master/vendor/lockzhiner/rk2206/samples/b6_uart

2、打开sdk下面路径的文件

/vendor/lockzhiner/rk2206/samples/b6_uart/uart_example.c

3、修改编译脚本

修改 vendor/lockzhiner/rk2206/sample 路径下 BUILD.gn 文件,指定 uart_example 参与编译。

"./b6_uart:uart_example",

修改 device/lockzhiner/rk2206/sdk_liteos 路径下 Makefile 文件,添加 -luart_example 参与编译。

hardware_LIBS = -lhal_iothardware -lhardware -luart_example

3、编译固件

hb set -root .

hb set

hb build -f

4、烧写固件

请参考Gitee网址的说明手册(“烧录打印”章节):https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts/blob/master/device/rockchip/README_zh.md

五、实验结果

  程序编译烧写到开发板后,按下开发板的RESET按键,通过串口软件查看日志如下:

HelloWorld!

HelloWorld!

HelloWorld!

HelloWorld!

...


 


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分