【XR806开发板试用】阻塞式串口发送与接收教程

2024-05-07 13:28

本文主要是介绍【XR806开发板试用】阻塞式串口发送与接收教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文基于wsl2搭建的ubuntu18.04 + vscode编辑器

很奇怪啊,找了半天居然没人发串口的教程,于是只能自己试一试了,在此发一个阻塞式的串口发送与接收的教程。并且,感谢.ACE彭洪权大佬在我配置环境遇到几十个报错的时候帮我远程搭建环境三四小时,非常感谢!
TIP:请确保您已经走到了官方教程中hb build -f这一步。

1.复制iot_peripheral文件夹

在这里插入图片描述

2.粘贴至ohosdemo文件夹

在这里插入图片描述

3.粘贴后的文件为iot_peripheral copy文件夹,右键重命名为uart文件夹。

在这里插入图片描述

4.打开uart里的BUILD.gn文件,修改红框内为app_uart

在这里插入图片描述

import("//device/xradio/xr806/liteos_m/config.gni")static_library("app_uart") {configs = []sources = ["src/main.c","src/test_flash.c","src/test_gpio.c","src/test_i2c.c","src/test_lowpower.c","src/test_pwm.c","src/test_reset.c","src/test_uart.c","src/test_watchdog.c",]cflags = board_cflagsinclude_dirs = board_include_dirsinclude_dirs += ["//kernel/liteos_m/kernel/arch/include","include","//base/iot_hardware/peripheral/interfaces/kits",]
}

5.修改ohosdemo文件夹下的BUILD.gn文件,[]内添加"uart:app_uart",

在这里插入图片描述

group("ohosdemo") {deps = ["uart:app_uart",#"ledpwm:app_ledpwm",#"led:app_led",#"hello_demo:app_hello",#"iot_peripheral:app_peripheral",#"wlan_demo:app_WlanTest",]
}

6.打开uart/src/main.c,代码如下:

#include <stdio.h>
#include "ohos_init.h"
#include "kernel/os/os.h"
#include <string.h>
#include "iot_uart.h"
#include "driver/chip/hal_uart.h"#define UARTID UART1_ID
#define UART_BUFFER_MAXSIZE 50
#define UART_RECEIVE_DATALEN 30
const uint8_t  play_Buffer[4] = {0xAA,0x02,0x00,0xAC};
static OS_Thread_t g_main_thread;static int uart_init(void)
{HAL_Status status = HAL_ERROR;UART_InitParam param;param.baudRate = 9600;   // 波特率为9600param.dataBits = UART_DATA_BITS_8;param.stopBits = UART_STOP_BITS_1;param.parity = UART_PARITY_NONE;param.isAutoHwFlowCtrl = 0;status = HAL_UART_Init(UARTID, &param);if (status != HAL_OK)printf("uart init error %d\n", status);return status;
}static void MainThread(void *arg)
{unsigned char uart_buffer[UART_BUFFER_MAXSIZE];uart_init();while (1) {HAL_UART_Transmit_Poll(UARTID, (uint8_t *)play_Buffer, 4);LOS_Msleep(1000);HAL_UART_Receive_Poll(UARTID,uart_buffer,6,0x000f);LOS_Msleep(1000);HAL_UART_Transmit_Poll(UARTID, (uint8_t *)uart_buffer, 6);LOS_Msleep(1000);}}void UARTMain(void)                                                             
{printf("UART Test Start\n");if (OS_ThreadCreate(&g_main_thread, "MainThread", MainThread, NULL,OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK) {printf("[ERR] Create MainThread Failed\n");}
}SYS_RUN(UARTMain);                                                               // Harmony线程入口

7.硬件接线

由于#define UARTID UART1_ID则使用UART1的收发组
在这里插入图片描述

本文作者使用USB转TTL接XR806,通过USB转TTL插入电脑,让电脑接收串口收发的信息。
接线如下:
USB转TTL XR806
3.3V-------------3.3V
TXD--------------B15
RXD--------------B14
GND--------------GND
在这里插入图片描述

8.代码修改完毕后,按下Ctrl+K再按S将代码全部保存,并再终端输入hb build -f编译

在这里插入图片描述

9.将USB tpye C数据线接上XR806,进行烧录

在这里插入图片描述

10.测试串口接收

将USB转TTL接入电脑,打开串口助手,选择新增的COM,波特率选择9600,打开串口,可以接收到AA 02 00 AC即说明XR806能正常发送
在这里插入图片描述

11.测试串口发送

在发送框输入01 02 03 04 05 07,并勾选16进制发送,点击发送,可以看到本来的80 25 00 00 00 00改变成了所发送的数据,即说明XR806接收到了所发送的信息并且又将收到的信息发送到了串口助手上显示。若不希望出现80 25 00 00 00 00,则需要在代码中自行修改buffer数组全部改为0,或者设置条件,在接收到之后再发送,发送之后再清空buffer。
在这里插入图片描述

教程到这里就结束啦。

这篇关于【XR806开发板试用】阻塞式串口发送与接收教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967476

相关文章

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

PyTorch使用教程之Tensor包详解

《PyTorch使用教程之Tensor包详解》这篇文章介绍了PyTorch中的张量(Tensor)数据结构,包括张量的数据类型、初始化、常用操作、属性等,张量是PyTorch框架中的核心数据结构,支持... 目录1、张量Tensor2、数据类型3、初始化(构造张量)4、常用操作5、常用属性5.1 存储(st

Java操作PDF文件实现签订电子合同详细教程

《Java操作PDF文件实现签订电子合同详细教程》:本文主要介绍如何在PDF中加入电子签章与电子签名的过程,包括编写Word文件、生成PDF、为PDF格式做表单、为表单赋值、生成文档以及上传到OB... 目录前言:先看效果:1.编写word文件1.2然后生成PDF格式进行保存1.3我这里是将文件保存到本地后

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

python库fire使用教程

《python库fire使用教程》本文主要介绍了python库fire使用教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1.简介2. fire安装3. fire使用示例1.简介目前python命令行解析库用过的有:ar

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修