HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART

这篇具有很好参考价值的文章主要介绍了HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙

一、UART 概述

UART 是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)的缩写,是通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工传输。UART 应用比较广泛,常用于输出打印信息,也可以外接各种模块,如 GPS、蓝牙等。

  • 异步通信

异步通信中,数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。异步通信以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,然而在同一个字符中的两个相邻位代码间的时间间隔是固定的。

  • 全双工传输(Full Duplex)

此通信模式允许数据在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。全双工可以同时进行信号的双向传输。

UART 设备的连接示意图如下:

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙

  • TX:发送数据端,和对端的 RX 相连。
  • RX:接收数据端,和对端的 TX 相连。
  • RTS:发送请求信号,用于指示本设备是否准备好,可以接收数据,和对端 CTS 相连。
  • CTS:允许发送信号,用于判断是否可以向对端发送数据,和对端 RTS 相连。

UART 通信之前,收发双方需要约定好:波特率、数据格式。

  • 波特率:指信息传输到信道的速率。例如:9600、961200、115200 等。
  • 数据格式:一帧数据由起始位、数据位、校验位、停止位组成。

UART 通信过程中,UART 通过 TX 发送数据给对端,通过 RX 接收对端数据。当 UART 接收缓存达到预定的门限值时,RTS 变为不可发送数据,对端的 CTS 检测到不可发送数据的信号,则停止发送数据。

UART 在进行数据传输时的数据格式如下:

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙

UART 操作流程如下:

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙

二、UART 模块相关API

头文件路径:base/iothardware/peripheral/interfaces/inner_api/iot_uart.h

接口函数 描述
unsigned int IoTUartInit(unsigned int id, const IotUartAttribute *param); 初始化UART
unsigned int IoTUartDeinit(unsigned int id); 清除初始化UART
int IoTUartWrite(unsigned int id, const unsigned char *data, unsigned int dataLen); UART写操作
int IoTUartRead(unsigned int id, unsigned char *data, unsigned int dataLen); UART读操作

三、UART 接口调用实例

//代码功能:定义了 UART 接口功能以及 UART 相关参数,GPIO_00 号口作为 UART1_TXD 模式以及 UART 相关参数,最后进行读写操作。

#include "iot_uart.h"
IotUartAttribute uart_attr = {
.baudRate = 9600, //波特率
.dataBits = 8, //数据位
.stopBits = 1, //停止位
.parity = 0, //优先级
};

IoTUartInit(UART1_TXD, &uart_attr);
IoTUartWrite(UART1_TXD, data, strlen(data));
IoTUartRead(UART1_TXD, buff, BUFF_SIZE);

四、UART HDF驱动开发

在HDF框架中,UART接口适配模式采用独立服务模式(如图3所示)。在这种模式下,每一个设备对象会独立发布一个设备服务来处理外部访问,设备管理器收到API的访问请求之后,通过提取该请求的参数,达到调用实际设备对象的相应内部方法的目的。独立服务模式可以直接借助HDF设备管理器的服务管理能力,但需要为每个设备单独配置设备节点,增加内存占用。

独立服务模式下,核心层不会统一发布一个服务供上层使用,因此这种模式下驱动要为每个控制器发布一个服务,具体表现为:

驱动适配者需要实现HdfDriverEntry的Bind钩子函数以绑定服务。

device_info.hcs文件中deviceNode的policy字段为1或2,不能为0。

UART模块各分层作用:

接口层提供打开UART设备、UART设备读取指定长度数据、UART设备写入指定长度数据、设置UART设备波特率、获取设UART设备波特率、设置UART设备属性、获取UART设备波特率、设置UART设备传输模式、关闭UART设备的接口。

核心层主要提供UART控制器的创建、移除以及管理的能力,通过钩子函数与适配层交互。

适配层主要是将钩子函数的功能实例化,实现具体的功能。

图 3 UART独立服务模式结构图

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙

4.1、开发步骤(待续…)

UART模块适配包含以下四个部分。

  • 驱实例化驱动入口
  • 配置属性文件
  • 实例化UART控制器对象
  • 驱动调试

坚持就有收获

HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART,OpenHarmony鸿蒙攻城记,harmonyos,物联网,华为,OpenHarmony,LiteOS,鸿蒙文章来源地址https://www.toymoban.com/news/detail-827007.html

到了这里,关于HCIA-HarmonyOS设备开发认证V2.0-IOT硬件子系统-UART的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核内存管理-动态内存

    动态内存管理,即在内存资源充足的情况下,根据用户需求,从系统配置的一块比较大的连续内存(内存池,也是堆内存)中分配任意大小的内存块。当用户不需要该内存块时,又可以释放回系统供下一次使用。 初始化 LOS_MemInit。初始一个内存池后生成一个内存池控制头、尾

    2024年02月20日
    浏览(76)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-互斥锁mux

    互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理。 任意时刻互斥锁的状态只有两种,开锁或闭锁。当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权。当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的

    2024年02月20日
    浏览(49)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-消息队列queue

    队列又称消息队列,是一种常用于任务间通信的数据结构。队列接收来自任务或中断的不固定长度消息,并根据不同的接口确定传递的消息是否存放在队列空间中。 任务能够从队列里面读取消息,当队列中的消息为空时,挂起读取任务;当队列中有新消息时,挂起的读取任务

    2024年02月20日
    浏览(48)
  • HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-信号量semaphore

    信号量(Semaphore)是一种实现任务间通信的机制,可以实现任务间同步或共享资源的互斥访问。 一个信号量的数据结构中,通常有一个计数值,用于对有效资源数的计数,表示剩下的可被使用的共享资源数,其值的含义分两种情况: 0,表示该信号量当前不可获取,因此可能

    2024年02月19日
    浏览(44)
  • HCIA-HarmonyOS设备开发认证-HarmonyOS简介

    本章主要介绍HarmonyOS分布式操作系统的概念、关键技术与能力以及HarmonyOS典型的应用场景。 学习完成本课程后,您将能够: 了解HarmonyOS的相关概念和产品定位; 了解HarmonyOS的技术架构; 了解HarmonyOS的关键特性。 HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统。

    2024年01月25日
    浏览(43)
  • HCIA-HarmonyOS设备开发认证-序

    最近涉及到HarmonyOS鸿蒙系统设备开发,在网络上已经有很多相关资料,视频教程,我也移植了公司的一个stm32G474板卡,运行LiteOS-m L0系统。 一面看资料一面移植,遇到不少坑,当看到运行的LOGO时,那是非常激动了。 由于没有系统性的学习,难免遇到不少坑,自己也决定找个

    2024年01月20日
    浏览(53)
  • HCIA-HarmonyOS应用开发工程师 V2.0 模拟考试

    低代码开发提供UI可视化开发能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得。通过拖拽式编排、可视化配置的方式,帮助开发者减少重复性的代码编写,快速地构建多端应用程序。 正确(True) 在使用ArkTS语言开发界面UI代码过程中,如果添加或删除

    2024年02月04日
    浏览(61)
  • HCIA-HarmonyOS Application Developer学习笔记

    HarmonyOS 是一款面向万物互联时代的、全新的分布式操作系统,它是一个全场景分布式智慧操作系统,覆盖了1+8+N全场景终端设备,其中手机是整个分布式能力的核心。 与原生Android 系统对比,HarmonyOS 不仅可以支持手机,还可以支持电脑、智慧屏、穿戴设备、智能家居、车机系

    2024年02月13日
    浏览(38)
  • HCIA-HarmonyOS Application Developer——题目集2

    题目1 1、HarmonyOS的\\\"1+8N”战略中的\\\"1\\\"指的是什么? A、智慧屏 B、平板电脑 C、手表 D、手机 解析:( D ) HarmonyOS是一款面向万物互联时代的、全新的分布式操作系统,是一个全场景分布式智慧操作系统,覆盖了1+8+N全场景终端设备,其中手机是整个分布式能力的核心。 题目2

    2024年02月13日
    浏览(40)
  • HCIA-HarmonyOS Application Developer——题目集4

    题目1 1、(多选)对于HarmnyOS设备,传统蓝牙本机管理涉及下列哪些操作? A、扫描和取消扫描周边蓝牙设备 B、打开和关闭蓝牙 C、向远端设备发起配对 D、设置和获取本机蓝牙名称 解析:( ABD ) 传统蓝牙 指的是Bluetooth3.0以下的蓝牙,而 低功耗蓝牙 指的是Bluetooth4.0以上的蓝

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包