0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

福州市凌睿智捷电子有限公司 ? 2022-06-14 11:12 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

一、简介

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

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

二、硬件电路设计

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

2403006e-e735-11ec-a2f4-dac502259ad0.png

图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!

...



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

    关注

    0

    文章

    28

    浏览量

    1451
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制FLASH外设

    1、实验简介 本实验将演示如何在小-RK2206开发板上使用IOT库的FLASH接口,进行FLASH编程开发。 例程将创建一个任务,实现
    发表于 04-22 15:02

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制FLASH外设

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的FLASH接口,进行FLASH编程开发。例程将创建一个任务,实现FL
    的头像 发表于 04-22 14:49 ?395次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>FLASH外设

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制UART外设

    1、实验简介 本实验将演示如何在小-RK2206开发板上使用IOT库的UART接口,进行UART
    发表于 04-22 14:27

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制UART外设

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的UART接口,进行UART
    的头像 发表于 04-22 14:22 ?502次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b><b class='flag-5'>UART</b>外设

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO中断

    1、实验简介 本实验将演示如何在小-RK2206开发板上使用IOT库的GPIO中断模式,进行GPIO编程开发。 例程将创建一个任务,通过
    发表于 04-21 11:08

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO中断

    1、实验简介本实验将演示如何在小-RK2206开发板上使用IOT库的GPIO中断模式,进行GPIO编程开发。例程将创建一个任务,通过配置
    的头像 发表于 04-21 10:39 ?497次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>GPIO中断

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO外设

    1、案例简介 本案例主要是如何在小-RK2206开发板上使用IOT库的GPIO接口,进行GPIO编程开发。 例程将创建一个任务,通过配置
    发表于 04-11 15:45

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制GPIO外设

    1、案例简介本案例主要是如何在小-RK2206开发板上使用IOT库的GPIO接口,进行GPIO编程开发。例程将创建一个任务,通过配置GP
    的头像 发表于 04-11 15:36 ?1265次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>GPIO外设

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制ADC外设

    1、案例简介 本案例主要讲解如何在小-RK2206开发板上使用IoT库的ADC接口,进行ADC编程开发。 例程内容为创建一个任务,读取按
    发表于 04-10 16:20

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制ADC外设

    1、案例简介本案例主要讲解如何在小-RK2206开发板上使用IoT库的ADC接口,进行ADC编程开发。例程内容为创建一个任务,读取按键的
    的头像 发表于 04-10 16:00 ?466次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>ADC外设

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制PWM外设

    1、案例简介 本案例是在小-RK2206开发板上使用IoT库PWM接口,进行PWM编程开发。 例程将创建一个任务,每隔5秒将PWM0~1
    发表于 04-09 09:37

    基于小RK2206开发板:OpenHarmony如何使用IoT接口控制PWM外设

    1、案例简介本案例是在小-RK2206开发板上使用IoT库PWM接口,进行PWM编程开发。例程将创建一个任务,每隔5秒将PWM0~10依
    的头像 发表于 04-09 08:59 ?1169次阅读
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>开发板</b>:OpenHarmony如何使用IoT接口<b class='flag-5'>控制</b>PWM外设

    【「OpenHarmony开发与实践 | 基于红莓RK2206开发板」阅读体验】+初体验1

    爱好者没有bug,「OpenHarmony开发与实践 | 基于红莓RK2206开发板」大卖吧!哦对了 你们的开发板是怎么准备的呢?【小
    发表于 09-18 18:30

    【「OpenHarmony开发与实践 | 基于红莓RK2206开发板」阅读体验】+初体验2连发发

    啥也不说先上图 对于《OpenHarmony开发与实践 | 基于红莓RK2206开发板》这本书的热爱,简直就像夏日里的一股清泉,让人忍不住想要一探究竟! 这本书的排布,简直就是一场视觉盛宴,章节
    发表于 09-18 18:01

    基于OpenHarmony轻量级操作系统实现RK2206 WiFi-AP模式通信开发案例

    实验内容本示例将演示如何在小-RK2206开发板上使用WiFi-AP模式(即将RK2206作为WiFi路由器),实现与PC端进行TCP通
    的头像 发表于 08-08 08:23 ?956次阅读
    基于OpenHarmony轻量级操作系统实现<b class='flag-5'>RK2206</b> WiFi-AP模式通信<b class='flag-5'>开发</b>案例