华为14天鸿蒙设备开发实战笔记五

本文详细介绍了OpenHarmony驱动开发中GPIO的操作、GPIO中断配置、PWM控制LED亮度、ADC采样及I2C通信,包括GPIO API、中断API、PWM API、ADC API和I2C API的使用示例,涵盖了LED、按键、NFC和UART等组件的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.OpenHarmony驱动子系统开发——操作GPIO

1.GPIO API介绍

2.查看LED对应的GPIO引脚

3.操作GPIO点亮LED

二.OpenHarmony驱动子系统开发——GPIO中断

1.GPIO中断API介绍

2.查看按键对应的GPIO引脚

3.操作GPIO点亮LED

三.OpenHarmony驱动子系统开发——PWM输出

1.PWM API介绍

2.查看LED对应的GPIO引脚

3.输出PWM改变LED亮度

四.OpenHarmony驱动子系统开发——ADC采样

1.ADC API介绍

2.查看ADC对应的GPIO引脚

四.OpenHarmony驱动子系统开发——I2C总线

1.I2C API介绍

2.查看NFC的12C对应的GPIO引脚

3.I2C读写NFC芯片

五.OpenHarmony驱动子系统开发——UART读写

1.UART API介绍

2.查看UART1对应的GPIO引脚

3.UART读写数据


 

一.OpenHarmony驱动子系统开发——操作GPIO

1.GPIO API介绍

wifiiot_gpio.h接口简介:

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

接口名

功能描述

GpioInit

初始化GPIO

GpioDeinit

取消初始化GPIO

GpioSetDir

设置GPIO引脚方向

GpioGetDir

获取GPIO引脚方向

GpioSetOutputVal

设置GPIO引脚输出电平值

GpioGetOutputVal

获取GPIO引脚输出电平值

wifiiot_gpio_ex.h接口简介:

这个.h中包含声明扩展的GPIO接口函数,这些功能用于设置GPIO拉力和驱动器强度。

接口名

功能描述

IoSetPull

设置GPIO引脚上拉

IoGetPull

获取GPIO引脚上拉

IoSetFunc

设置GPIO引脚功能

IoGetFunc

获取GPIO引脚功能

IOSetDriveStrength

设置GPIO驱动能力

IOGetDriveStrength

获取GPIO驱动能力

2.查看LED对应的GPIO引脚

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

●高电平时点亮LED灯。

●低电平时熄灭LED灯。

b8c5d650c7cfc39b1481b7176d60214d.png

5e239ff7bf8e220c687dd424a89545ad.png

3.操作GPIO点亮LED

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

8162ea61e2f8d872df67278da1dc8976.png

84ad6ea03936b076da61c3d598c164f1.png

二.OpenHarmony驱动子系统开发——GPIO中断

1.GPIO中断API介绍

wifiiot_gpio.h接口简介:

wifiliot_gpio.h中包含声明GPIO中断相关函数。

接口名

功能描述

GpioRegisterIsrFunc

设置GPIO引脚中断功能

GpioUnregisterIsrFunc

取消GPIO引脚中断功能

GpioSetIsrMask

屏蔽GPIO引脚中断功能

GpioSetIsrMode

设置GPIO引脚中断触发模式

2.查看按键对应的GPIO引脚

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

d632c469c5478333c8fffc3b647313cd.png

c24ef99859f2f45cb9f19e57cb137361.png

3.操作GPIO点亮LED

打开“B2_basic_button"工程的button_example.c文件,可在代码中查看实现按键控制LED灯亮灭的代码

52153252e66232008d89551d330561c9.png

7387f7ca4c7819106fb20b706ff6893b.png

三.OpenHarmony驱动子系统开发——PWM输出

1.PWM API介绍

wifiiot_pwm.h接口简介:

这个wifiiot_pwm.h中包含声明PWM接口函数。

接口名

功能描述

PwmInit

初始化PWM

PwmDeinit

取消初始化PWM

PwmStart

根据输入参数输出PWM

PwmStop

停止PWM输出

2.查看LED对应的GPIO引脚

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

●高电平时点亮LED灯。

●.低电平时熄灭LED灯。

90a6faecae03ee372844c74f7c1fad9d.png

9b0bf1847a413ddcc6a201d15770609f.png

3.输出PWM改变LED亮度

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

8e6a044f49dfb5f981b85a7682e3ecb0.png

93455b6427ac91999909c9ea96a53777.png

四.OpenHarmony驱动子系统开发——ADC采样

1.ADC API介绍

wifiiot_adc.h接口简介:

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

接口名

功能描述

AdcRead

根据输入参数从指定的ADC通道读取一段采样数据

参数

说明

channel

ADC通道

data

指示用于存放读取数据的地址的指针

equModel

表示平均算法的次数

curBais

表示模拟功率控制模式

rstCnt

指示从重置到转换开始的时间计数

2.查看ADC对应的GPIO引脚

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

编写软件去读取ADC Channel 5的电压。

b40013c3961992a019534b3b8ee749c3.png

ae63a9c49c06f737cb292edef5e00a16.png

四.OpenHarmony驱动子系统开发——I2C总线

1.I2C API介绍

wifiiot_i2c.h接口简介:

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

接口名

功能描述

I2cInit

初始化I2C

I2cDeinit

取消I2C初始化

I2cWrite

将数据写入到I2C设备

I2cRead

从I2C设备读取数据

wifiot_i2c_ex.h接口简介:

wifiiot_i2c_ex.h中包含声明扩展|2C接口函数。

接口名

功能描述

I2cWriteread

向I2C设备发送数据并接受数据响应

I2cSetBaudrate

设置I2C频率

2.查看NFC的12C对应的GPIO引脚

NFC芯片的I2C对应的GPIO引脚是分别是GPIO0和GPIO1,所以需要编写软件使用GPIO_0和GPIO_1产

生I2C信号去控制NFC芯片。

f7323a753252789077b4d02ac2c4481d.png

d3141dfb36e0705631502c960e02201a.png

3.I2C读写NFC芯片

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

61efcd615e9088b3689bd9ba2461276c.png

cf0001553b426990f19e5761a63285d4.png

五.OpenHarmony驱动子系统开发——UART读写

1.UART API介绍

wifiiot_uart.h接口简介:

wifiiot_uart.h中包含声明UART接口函数。

接口名

功能描述

UartInit

初始化UART

UartDeinit

取消UART初始化

UartRead

从UART读取数据

UartWrite

将数据写入UART

UartSetFlowCtrl

设置UART流控制

2.查看UART1对应的GPIO引脚

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

122c175cb2d24968cbe1892b76ade983.png

9fd1663aa756d2d4b5d51ffb44e5aef0.png

3.UART读写数据

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

72023f22dc93276cf5a4dce49dfc2ca2.png

d3bf65959e23092d0c6db921d78219c3.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值