华为鸿蒙设备开发教程笔记驱动子系统开发笔记

news/2024/11/17 9:41:22/

学习资料:

https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXTX003+Self-paced/courseware/859b86b40fa541a4951f97bdc8c18937/fe5db016525c44b3bad913cce4575005/

本节内容: 

GPIO相关API
·如何操作GPIO点亮LED灯

何读取GPIO电平状态
主要步骤:

1.GPIO API介绍
2.查看LED对应的GPIO引脚

3.操作GPIO点亮LED
4.GPIO扩展实验

gpio api介绍:

wifiiot_gpio.h接口简介

这个.h中包含声明GPIO接口函数,这些功能用于初始化GPIO。

查看LED对应的GPIO引脚

LED对应的GPIO引脚是GPIO2通过控制GPIO2输出的的电平信号来实现LED灯的闪烁。
·高电平时点亮LED灯。

。低电平时熄灭LED灯。

 

 打开“B1_basic_led_blink”工程的led_example.c文件:可在代码中查看实现LED以1S的频率闪烁代码

代码实现首先引入头文件

然后初始化

设置输出模式,与引脚号码。

具体亮暗规则代码如下:

api位于gpio.h

 

功能选择如图所示:

我们根据需求来选择

对代码进行根据要求修改之后

最后来编译烧录代码来测试代码现象。步骤和之前一样,再此不做过多赘述。

  

输出结果如下

总结:

1、了解GPIO输出相关API
2、掌握如何操作GPIO输出高电平点亮LED灯

3、如何读取GPIO当前的设置
本节课内容较为复杂,且教程较为快速,有许多点没有仔细解释,希望在接下来的课程可以再次进行讲解:

HarmonyOS驱动子系统开发—GPIO中断

主要内容

GPIO中断相关API
如何使用GPIO中断相关API

如何通过GPIO中断判断按键状态

主要步骤:

1.GPIO中断API介绍
2.查看按键对应的GPIO引脚

3.GPIO中断读取按键状态

4.GPIO中断扩展实验

GPIO中断API介绍
wifiiot_gpio.h接口简介:
wifiiot_gpio.h中包含声明GPIO中断相关函数。

查看按键对应的GPIO引脚
 F1和F2按键对应的GPIO引脚是分别是GPIO11和GPIO12,通过检测GPIO的电平信号来判断按键的状态。

 

 代码实现分析

首先初始化led,然后根据需求设置led灯代码功能。

 根据电频变化来设置触发条件,如电频触发,或者边缘触发。

根据代码,以及自己所需的来设置。

代码修改后,进行代码烧录编译,

烧录成功后,我们修改代码进行扩展。首先进行一些打印,来使得现象更加明显

 

然后将中断类型进行修改。改为上升延中断。

修改之后进行代码编译烧录。可以看到结果如图说是,符合预期:

一直按下不会打印,只有在改变时才会打印。

总结:

1、了解GPIO中断APl
2、掌握如何通过按键去控制LED

3、如何改变GPIO中断的模式

本节在上节课的知识基础上进行讲解。拓展实验也让我们对知识有了更直观的了解。
HarmonyOS驱动子系统开发—PWM输出

本节主要内容:

、. PWM相关APl
.如何操作GPIO输出PWM
.如何使用PWM改变LED灯亮度

PWM API介绍
wifiiot_pwm.h接口简介:
这个wifiiot_pwm.h中包含声明PWM接口函数。

查看LED对应的GPIO引脚
 LED对应的GPIO引脚是GPIO2通过控制GPIO2输出的的电平信号来实现LED灯的闪烁。
·高电平时点亮LED灯。

·低电平时熄灭LED灯。

 

 

 输出PWM改变LED亮度

 打开“B3_basic_pwm_led”工程的
pwm_example.c文件,可在代码中查看实玛输出不同占空比的PWM来改变LED的亮度码

 

 

 分析实现代码。通过改变pwm来改变灯泡的亮度,即pwm占玶比。

代码

 同样也要进行初始化,和端口,这些步骤与之前相同、

代码修改之后,检查无误后进行代码编译烧录。

最后我们得到最终结果

可以看到开发班上led灯亮度进行了亮度呼吸的效果。

总结:

1、了解PWM输出相关API
2、掌握如何操作GPIO输出PWM改变LED亮度
本节课我们可以清楚·的看到代码在板子上运行的实际效果,灯的变化这些都是可以由代码进行改变的,使得学习兴趣进行了极大改变。

HarmonyOS驱动子系统开发-ADC采样
主要内容

ADC相关APl
·如何使用ADC相关函数读取GPIO的电压值

步骤

1. ADC API介绍
2.查看ADC对应的GPIO引脚

3.ADC读取GPIO的电压值

ADC API介绍

wifiiot_adc.h接口简介:
这个wifiiot_adc.h中包含声明ADC接口函数。

 AdcRead (WiflotAdcChanellndex channel,unsigned short * data,WifilotAdcEquModelsel equModel WifilotAdcCurBais curBais,unsigned short rstCnt )

 查看ADC对应的GPIO引脚

本案例将使用板载用户按键F1来模拟GPIO口电压的变化。GPIO_11对应的是ADC Channel 5 ,所以需要编写软件去读取ADC Channel 5的电压。

 ADC读取GPIO的电压值

 打开“B4_basic_adc”工程的
adc_example.c文件,可在代码中查看实现读取ADC通道5的电压值的代码

 代码编译解释运行:

 该代码的意义与功能如下:

 编译烧录之后结果如图所示:

按住f1

总结

1、了解ADC输出相关API
2、掌握如何使用ADC相关函数读取GPIO的电压值

 本节课时间较短,内容也较少,但知识仍需要时间进行消化.

HarmonyOS驱动子系统开发-12C总线

主要内容:

l2C相关APl
如何使用I2C相关API
.如何通过I2C读写NFC芯片

主要步骤:

1.I2C API介绍
2.查看NFC的l2C对应的GPIO引脚

3.l2C读写NFC芯片

I2C API介绍:

wifiiot_i2c.h接口简介:
wifiiot_i2c.h中包含声明I2C接口函数。

wifiiot_i2c_ex.h接口简介:
wifiot_i2c_ex.h中包含声明扩展I2C接口函数。
 

 查看NFC的I2C对应的GPIO引脚

NFC芯片的I2C对应的GPIO引脚是分别是GPIOO和GPIO1,所以需要编写软件使用GPIO_0和GPIO_1产生l2C信号去控制NFC芯片。

 

 i2C读写NFC芯片

打开“B5_basic_i2c_nfc”工程的
i2c_example.c文件,可在代码中查看实现NCF读写的代码

 

代码解读价绍:

 

 

操作代码:

 

代码分别为·: 地址,参数,结构体、

 

 代码修改后进行代码编译烧录,可以看到带有nfc的手机可以读取到代码中的数据。

· 1、了解I2C相关API
· 2、掌握如何操作I2C总线读写NFC芯片
本节课知识点多,并且理解起来由一定难度,对于我来说,有许多地方没有弄明白,总结由很多欠佳的地方。

HarmonyOS驱动子系统开发-UART读写

主要内容;

. UART相关API
。如何使用UART相关API
。如何通过UART进行数据收发
主要步骤;

1.UART API介绍
2.查看UART1对应的GPIO引脚3.UART读写数据
UART API介绍
wifiiot_uart.h接口简介:
wifiiot_uart.h中包含声明UART接口函数。

查看UART1对应的GPIO引脚
 UART1对应的GPIO引脚是分别是GPIO5和GPIO6,将使用GPIO5和GPIO6进行UART数据的收发。

 

UART读写数据
打开“B6_basic_uart”工程的
uart_example.c文件,可在代码中查看实现UART读写数据。
 

 

 


http://www.ppmy.cn/news/475132.html

相关文章

华为STP实验带详解

STP 文章目录 STP实验背景实验需求1.改变模式为stp(华为默认是MSTP)2.查看各个端口的状态与角色3.在L3上E0/0/3改COST 让L3上的E0/0/3口 变成预备端口4.再次查看各个端口的角色和状态5.抓包分析总结**STP比较顺序** 实验背景 实验需求 1.L1必须是stp的根…

大数据治理——《华为数据之道》

重点章节 1️⃣:差异化的数据分类管理【第二章】、信息架构【第三章】、数据底座【第三章】。 次重点 2️⃣:数据服务【第四章】、数据质量【第五章】、数据安全与隐私【第六章】。 其他 3️⃣:数据感知【第五章】、数据综合治理体系【第二章】、企业数字化转型【第三章】。 …

端午节出行的小贴士——行之安,乐之逍

亲爱的朋友们, 随着端午节的到来,想必许多人已经开始期待那份出游的快乐与解脱。无论你是期待漫步在宁静的田野小径,还是在繁华的城市中探索,这篇文章都会给你一些实用的端午节出行建议,帮助你尽情享受旅程。 首先&a…

【华为云计算产品系列】华为HCIE-Cloud Computing模拟考试环境搭建

【华为云计算产品系列】华为HCIE-Cloud Computing模拟考试环境搭建 1. openEuler宿主机安装操作系统2. openEuler宿主机基础配置3. 创建业务虚拟机3.1. 创建CNA主机3.2. 创建FA主机3.3. 创建Windows10主机(FusionUpdateTool、Rainbow、eReplication)3.4. 创建Windows Server …

华为云挂载磁盘及初始化数据盘(Linux)

目录 一、操作场景二、挂载磁盘1.方式一2.方式二 三、初始化数据盘1.查询数据盘2.执行分区操作3.新建分区4.设置分区文件系统格式5.挂载分区6.设置开机自动挂载磁盘分区 一、操作场景 弹性云服务器创建成功后,如果发现磁盘不够用或当前磁盘不满足要求,可…

8c技术白皮书 六

GBase 8c产品运行环境 GBase 8c支持如下运行环境: CPU:Intel、AMD、申威、龙芯、飞腾、海光、鲲鹏等。服务器:x86_64 的标准 PC 服务器、PowerLinux 服务器、浪潮、华为、曙光、H3C等。存储:本地存储(SATA、SAS、NVMe等…

驱动模块和printk函数

目录 1. 驱动模板 1.1. 在源码工程路径下创建.c文件 1.2. 编写驱动模板 1.3. 将模板放到ubuntu上 1.4. 书写Makefile 1.5. 编译和安装 2. printk 2.1. Source Insight查找命令 2.2. printk讲解 2.2.1. 分析函数 2.2.2. 编写代码 2.3. 拓展 2.3.1. 关于printk函数测…

asp.net 注册页面

注册页面,效果如下 RequiredFieldValidator控件:对于输入的内容进行验证,本文对输入框进行验证 其中比较常用的属性: ErrorMessage"* 必填项" :验证失败的提示信息 ForeColor:错误信息的字体颜色…