鸿蒙南北向开发基础及项目实战教程 课件 第2章 鸿蒙系统设备开发基础_第1页
鸿蒙南北向开发基础及项目实战教程 课件 第2章 鸿蒙系统设备开发基础_第2页
鸿蒙南北向开发基础及项目实战教程 课件 第2章 鸿蒙系统设备开发基础_第3页
鸿蒙南北向开发基础及项目实战教程 课件 第2章 鸿蒙系统设备开发基础_第4页
鸿蒙南北向开发基础及项目实战教程 课件 第2章 鸿蒙系统设备开发基础_第5页
已阅读5页,还剩98页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深圳信息職棠技術学院SHENZHEN

INSTITUTE

OF

INFORMATION

TECHNOLOGY鸿蒙系统设备开发基础前言●本章主要讲述鸿蒙设备开发环境的搭建。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第2页本节概述和学习目标●通过学习本节将能够了解鸿蒙系统设备开发环境的搭建。●通过本节学习可以熟悉:□VSCode的安装□devicetool鸿蒙插件安装□设备开发的SDK

下载□设备开发所需的工具集下载和UART

接口驱动安装深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第3页目录1.VSCode的安装2.

devicetool鸿蒙插件安装3.

SDK下载4.工具集下载和UART接口驱动安装深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第4页●Visual

Studio

Code(VSCode)是一款功能强大的、免费开源的源代码编辑软件,它支持所有主流的开发语言,并在集成的插件市场上提供各种功能插件。鸿蒙系统

利用VSCode的插件机制,实现了设备开发流程的全面支持。在VSCode官网下载

Windows

系统版本软件VSCode

安装(1/3)深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第5页●下载完成后执行VSCodeUserSetup-x64-1.92.0.exe

后,根据向导使用默认设置逐步完成安装操作。安装步骤完成后,启动VSCode,安装必要的设备开发插件2

C/C++

①68.1M★3.5

C/C++IntelliSense,debugging,and

...李Microsoft

InstallC++IntellisenseC/C++Intellisense

with

the

help

of

G...

austin

Install

ΔC/C++Extension

Pack31.3M

4.5Popular

extensions

for

C++develop

李Microsoft

InstallBetter

C++Syntax

①11.4MThebleedingedge

ofthe

C++syntax

Jeff

Hykin

InstallDETAILS

FEATURES

CHADacC/C++for

Visual

Studio

CodeRepository

|Issues

|Documentation

|CodeSamplesC/C++

v1.21.5Microsoft

microsoft.com

①68,189,817C/C++IntelliSense,debugging,and

code

browsingInstall

☑AutoUpdateFile

Edit

Selection

View

Go

Run

Terminal

HelpEXTENSIONS:MARKETPLACE

WelcomeVSCode

安装(2/3)OSearchExtension:C/C++×深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGYC++Cc++C/C++第6页VSCode

安装(3/3)●“C/C++”插件用于实现VSCode

对鸿蒙系

统C语言源文件的支持。●“GN”插件用于实现VSCode

对鸿蒙系统的

*.gn编译配置文件的支持。●“Include

AutoComplete”插件实现源程

序头文件名的自动补全。

FileEditSelection

View

GoRunTerminalEXTENSIONSSearch

Extensionsin

MarketplaceINSTALLED

3C/C++C/C++IntelliSense,debugging,and..MicrosoftGNEditGNfiles

inVisualStudio

Code

npclaudiuIncludeAutocompleteAutocompletionforC++includes

ajshort深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATION

TECHNOLOGY第7页目录1.

VSCode

的安装2.devicetool

鸿蒙插件安装3.SDK下载4.工具集下载和UART接口驱动安装深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第8页△DevEco

Device

Tool安装安装DevEco

Device

Tool正在检查依赖项.工具

版本要求

已安装Python3.8-3.9(64-bit)3.8VSCode

1.66.2+

1.92.0选择Python路径状态0k0kDevEco

Device

Tool00<上一步在鸿蒙系统官网下载Windows

系统版本后得到“devicetool-windows-tool-00.zip”压缩包。解压压缩包后,运行“devicetool-windows-tool-00.exe”安装程序。devicetool

鸿蒙插件安装(1/2)C:\Users\jk\AppData\Local\Programs\Python\Python38\python.eze深圳信息職棠技術學院(P)安装(I)取消(C)SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第9页devicetool

鸿蒙插件安装(2/2)鸿蒙设备开发的VSCode

插件完成安装后,在VSCode的插件列表中显示出相关的插

件并在窗口左侧新增了一个“DevEco”

框按钮DevEco

Device

Tool

Debug③12ms

HUAWEIDevEco

DeviceTool

Debug

HuaweiDevEco

Device

Tool

Remo...③203msDevelopment

environment

for

Open..

HuaweiBurn

ToolHuaweiC/C++C/C++IntelliSense,debugging,and...必

Microsoft

章INSTALLED

9DevEco

Chip

ConfigHuawei深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY③5ms第10页C/C++a目录1.

VSCode

的安装2.devicetool鸿蒙插件安装3.SDK

下载4.工具集下载和UART接口驱动安装深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第11页.git

记录源码的版本、配置、跟踪等管理信息build

工程源码编译、打包镜像等操作的Python

脚本程序doc

提供开发文档、芯片手册等sample

提供开发案例src

工程源码目录LICENSEREADME.md安装完Git程序后,在命令行窗口执行命令:gitclone/HiSpark/hi3861_hdu_iot_application

下载完成后,得到的适配Hi3861

的鸿蒙系统工程源码深圳信息職棠技術學院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGYSDK

下载第12页目录1.

VSCode

的安装2.

devicetool鸿蒙插件安装3.

SDK下载4.

工具集下载和UART接口驱动安装深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第13页鸿蒙设备开发所需的编译器等相关的工具在华为官网的下载地址:

https://hispark-obs.

obs.cn-east-3.myhuaweicloud.com/DevTools_Hi3861V100_v1.0.zip下载并解压缩开发工具包后,放在较浅层次的目录中且重命名文件夹个

>此电脑>本地磁盘(D:)>development

>Hi3861名称hi3861-iothi3861-tools快速访问WP

S云盘

此电脑修改日期2024/8/610:562024/8/613:09工具集下载类型文件夹文件夹深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第14页设备管理器文件(F)

操作(A)查看(V)

帮助(H)安全设备处理器磁盘驱动器存储控制器打印队列电池端口(COM

LPT)USB-SERIAL

CH340(COM3)固件执行“D:\development\Hi3861\hi3861-tools\usb_serial_driver\CH341SER.EXE”完成驱动安装。安装完成并通过数据线连接开发板与PC

机后,在系统的设备管理器即可查UART驱动安装看到对应的COM口深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第15页思考题1.

请简述devicetool与VSCode的关系。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第16页本节小结●

讲述了VSCode的安装。●

讲述了devicetool

插件的安装。●讲述了设备开发的SDK下载。●讲述了设备开发的工具集下载。●讲述了开发板UART接口的驱动安装。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第17页前言●本章主要讲述Hi3861工程源码开发基础。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第18页本节概述和学习目标●

通过学习本节将能够学习Hi3861

工程源码开发基础。●通过本节学习可以熟悉:□工程源码导入□工程配置□工程源码编译□工程程序烧录□工程程序调试□工程加入程序代码深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第19页目录1.

工程源码导入2.

工程配置3.

工程源码编译4.

工程程序烧录5.

工程程序调试6.

工程加入程序代码深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第20页SearchDEVECO:QUICK

ACCESS

Welcome

DevEco

Device

Tool×Welcome

to

DevEco

DeviceToolRemote

DevelopmentResource

ManagerCLIDevEco

CLINewTerminalOfficial

WebSite

Document

FAQ

FeedbackUserAgreement&&StatementAboutPrivacyProjectsInput

pro...

All

NewProjectImport

Project工程源码导入(1/3)深圳信息職棠技術學院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第21页Boards3即可,其他两项设置会自动适配。ImportProject*

SOCHI3861FrameworkHbCancel●在首次导入工程源码时会弹出设置窗口,设置源码工程所用的主控芯片为HI3861Boardhi3861Import工程源码导入(2/3)深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第22页在sample\wifi-iot\app

子目录下开发应用程序提供一些如电源管理、

IO口操作等基础功能调用接口

主要提供编译配置等工具主控芯片适配鸿蒙系统的功能代码主要提供芯片厂商的开发工具包主要提供鸿蒙系统的无线网络、数据管理等功能框架主要提供解析gn

配置文件与构建鸿蒙系统的工具

主要提供源码工程系统类型、产品名称等配置信息

主要提供系统测试框架的组件与工具主要提供第三方开源的功能库,如paho.mqtt

库主要提供鸿蒙系统通用的基础组件,如定时器、文件操作等

主要提供芯片厂商或开发板商实现的系统层功能Y

HI3861-IOT>.deveco

工程具体源文件目录与用途>.vscode>build>doc>sampleY

src>ap

plications

>base>build>device

ird_party>utils>vendorthest工程源码导入(3/3)深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY>domains>foundation>prebuilts>productdefine第23页目录1.

工程源码导入2.

工程配置3.

工程源码编译4.

工程程序烧录5.

工程程序调试6.

工程加入程序代码深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第24页9hi3861-iot08compiler_bin_pathcompliertool

chainD:\development'Hi3861hi3861-tools

5V

uploadupload_portnupoau

ponwne

cn

uprozteroruse¹rammwaresCOM3

[USB-SERIALCH340(COM3)]6upload_protocolAprotocolthatuploader

tooluses

to

talk

to

aboardhiburn-serialGoDevEco

Device

Tool×hi3861-iot3Tool

Chain

hi3861ProjectConfigbuildbuild_typeboard_frameworks.hb.build.productcompiler_bin_pathuploadupload_portupload_protocolupload_partitionsupload_resetupload_speeddebugdebug

clientSHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY□×manager×C工程配置

File

Edit

Selection

ViewDEVECOQUICK

ACCESSMenuHomeProjectSettings

2

BoardsHDFRemoteDevelopmentResource

ManagerCLIDevEco

CLI上

New

Terminal7PROJECT

TASKShi3861面

CleanBuildRebuildUploadMonitorlDoD

ProfilingStack

AnalysisD⁰Image

Analysis8master0

×0△0

200深圳信息職業技術学院第25页V目录1.

工程源码导入2.

工程配置3.

工程源码编译4.

工程程序烧录5.

工程程序调试深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第26页PROJECT

TASKShi3861RebuildUploadMonitorDoD

Profiling&Stack

Analysis0D

Image

Analysismaster0

×0△0

0点击“Build”或

“Rebuild”按钮进行编译。

Rebuild

会清除所有已编译文件并重新编译,适用于新增或删除工程源文件时;使用Build,

它只会更新这些修改过的文件。工程源码编译深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第27页目录1.

工程源码导入2.

工程配置3.

工程源码编译4.

工程程序烧录5.

工程程序调试6.

工程加入程序代码深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第28页PROBLEMS

OUTPUT

TERMINA

L

PORTS

DEBUG

CONSOLE

2deveco:upload-hi3861-Task*Executing

task:C:\Program

Files\Huawei\DevECo-Device-Tool\core\deveco-venv\Scripts\hos.exepload--project-dir

D:\development\Hi3861\hi3861-iot--environment

hi3861Processing

hi3861

(platform:cfbb;board:hi3861;framework:hb)Verbosemodecanbeenabledvia^-v,--verbose`optionConfiguringupload..CURRENT:upload_protocol=hiburn-serialUploading

with

HiBurnConnecting,please

reset

device

.点击“Upload

”待TERMINAL窗口上输出提示后,则按开发板的RESET键后启动通过UART

接口传输并烧录程序文件。V

PROJECTTASKShi3861CleanO

BuildRebuildUpload草

MonitorL0DProflingR&StackAnalysis00

ImageAnalysis工程程序烧录深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第29页目录1.

工程源码导入2.

工程配置3.

工程源码编译4.

工程程序烧录5.

工程程序调试6.

工程加入程序代码深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第30页PROBLEMSOUTPUTTERMINAL

DEBUGCONSOLE--encoding

UTF-8--project-dir

D:\development\Hi3861\hi3861-iot----Miniterm

on

COM4115200,8,N,1

------Quit:Ctrl+C|Menu:Ctrl+T|Help:ctrl+T

followedbyctrl+H

ready

to

oS

startsdk

ver:Hi3861V100RO01COOSPC0252020-09-0318:10:00wifi

init

success!hilog

willinit.PROJECTTASKSO

BuildRebuildUploadJ

MonitorLD0D

Profiling&StackAnalysisD0

ImageAnalysis点击“Monitor”

以启动UART接收功能,此时开发板会通过UART接口返回相关信息。工程程序调试深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGYformatting

spiffs...Filesystemmount

ok.第31页目录1.

工程源码导入2.

工程配置3.

工程源码编译4.

工程程序烧录5.

工程程序调试6.

工程加入程序代码深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第32页√applications\sample\wifi-iotapp>demolink>iothardwaremyhelloC

myhello_demo.c>samgr>startupBUILD.gn在VSCode

源文件浏览器上选中“app”

文件夹后,右键菜单选择“New

Folder…

”创建myhello

子目录,并通过“New

File

…”

右键菜单创建myhello_demo.c源文件工程加入程序代码深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第33页工程加入程序代码Myhello_demo.c

输入代码:#include<stdio.h>//提供printf

函数#include<ohos_init.h>//提供SYS_RUN/APP_FEATURE_INIT

宏定义voidmyhelloInit()//自定义的入口函数{printf("myhello

init\n");}//指定在鸿蒙系统的应用层执行入口函数APP_FEATURE_INIT(myhelloInit);//指定在鸿蒙系统的系统服务层执行入口函数//SYS_RUN(myhelloInit);深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第34页工程加入程序代码在

myhello目录下创建BUILD.gn

文件,并输入内容:#指定编译目标名为myhello_test,生成静态库libmyhello_test.astatic_library("myhello_test"){#指定程序是由哪些源文件组成,当多个源文件时由","分隔sources=["myhello_demo.c"]#指定头文件所在路径include_dirs

=["//utils/native/lite/include",深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第35页工程加入程序代码修改app目录下BUILD.gn文件内容:import("//build/lite/config/component/lite_component.gni")lite_component("app"){features=[#

"startup",#注释不参与编译的程序#格式:"子目录名:子目录BUILD.gn中定义的目标名""myhello:myhello_test"深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第36页Build编译工程时在终端输出:[OHOSINFO][1/6]gcccrosscompilerobj/applications/sample/wifi-iot/app/myhello/libmyhello_test.myhello_demo.0[OHOSINFO][2/6]ARlibs/libmyhello_test.a[0HOSINFO][3/6]STAMPobj/applications/sample/wifi-iot/app/app.stamp[OHOS

INFO][4/6]STAMP

obj/build/lite/ohos.stamp[OHOSINFO][5/6]ACTION//device/hisilicon/hispark_pegasus/sdk_liteos:run_wifiiot_scons(//build/lite/toolchain:riscv32-unknown-elf)[OHOSINFO]D:\development\Hi3861\hi3861-iot\src\vendor\hisilicon\hispark_pegasus\fs.ymlnotfound,

stoppacking

fs.If

theproduct

doesnotneed

tobepackaged,ignoreit.[OHOS

INFO]wifiiot_hispark_pegasus

build

success[OHOS

INF0]cost

time:0:00:04please

check

the

compilation

log:C:\Users\jk\.deveco-device-tool\logs\build\build.log将程序烧录至开发板后,执行Monitor程序并重启开发板,随后即可在终端中查看到“myhello

init”的

输出信息。====================[SUCCESS]Took6.09seconds

======

Terminal

willbereusedbytasks,pressanykeytoclose

it.工程加入程序代码深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第37页思考题1.

请简述开发板USB线的作用。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第38页本节小结●讲述了工程源码导入操作。●讲述了工程的配置。●讲述了工程源码的编译。●讲述了工程程序烧录方法。●讲述了工程程序调试方法。●讲述了工程中加入程序代码的方法深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第39页前言●本章主要讲述鸿蒙设备GPIO

应用开发。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第40页本节概述和学习目标●通过学习本节将能够了解鸿蒙系统设备GPIO

应用开发。●通过本节学习可以熟悉:□华为海思的GPIO

操作函数□鸿蒙系统的GPIO

操作函数□鸿蒙系统的GPIO中断处理深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第41页目录1.华为海思的GPIO操作函数2.

鸿蒙系统的GPIO操作函数3.

鸿蒙系统的GPIO中断处理深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第42页BitsAccessNameDescriptionReset[31:3]reserved保留。0x00000000[2:0]RWgpio_03_selGPIO_03管脚的具体复用情况。000:GPIO[3];001:UART0_TXD;010:UART1_CTS_N;011:SPI1_CSN;100:JTAG_TDI;101:PWM5_OUT;110:I2C1_SDA;111:SSI_DATA。0x0GPIO(General

Purpose

Input/Output,通用输入输出口)主要作为输入或输出功能使用,当需要用代码主动控制GPIO

输出高低电平时,

GPIO

应当设置输出功能;当需要通过GPI

O

取连接设备输出的高低电平时,

GPIO

应当设置输入功能。Hi3861芯片手册中GPIO_03GPIO的用途选择寄存器:GPIO_03_SEL

GPIO_03

管脚复用控制寄存器。OffsetAddress:0x610Total

Reset

Value:Ox0000_0000华为海思的GPIO

操作函数(1/7)深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第43页LED连接到GPIO_02引

,GPIO_02应当被配置为输出功能。当GPIO_02引脚输出高电平时,LED亮;而当GPIO_02输出低电平时,LED熄。华为海思的GPIO操作函数(2/7)D3LED-0603深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGYGPIO02>>PWMLED第44页R19Hi3861

共有15个多功能的GPIO,

在鸿蒙工程中的hi_io.h头文件,芯片厂家已定义好表示每个GPIO的枚举常量:typedef

enum

{HI_IO_NAME_GPIO_0,HI_IO_NAME_GPIO_

14,}hi_io_name;华为海思的GPIO

操作函数(3/7)由此可见,HI_IO_NAME_GPIO_2对应着GPIO_02引脚。//表示GPI00//表示GPI014深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第45页typedef

enum{HI_IO_FUNC_GPIO_2_GPIO,//该引脚可作为通用GPIO,用于连接输入输出高低电平的设备。HI_I0_FUNC_GPIO_2_UART1_RTS_N=2,//该引脚可作为第1个UART控制器的硬件流控功能

。HI_IO_FUNC_GPIO_2_SPI1_TXD,//作为第1个SPI控制器的数据发送引脚HI_IO_FUNC_GPIO_2_JTAG_TRSTN,//作为连接JTAG调试器的功能引脚HI_IO_FUNC_GPIO_2_PWM2_OUT,

//

作为第2个PWM控制器信号输出引脚HI_IO_FUNC_GPIO_2_SSI_CLK

=7,//作为SSI控制器的时钟输出引脚}hi_io_func_gpio_2;华为海思的GPIO操作函数(4/7)在hi_io.h头文件中,也定义一系列的枚举常量描述每个GPIOPIO_02

的功能描述为:可选择使用的功能,例如G深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第46页Hi3861的每个GPIO都是多用途功能的,但某一时刻只能选择其中一种功能。同时在hi_io.h头文件中提供了设置GPIO用途的函数:hi_u32hi_io_set_func(hi_io_name

id,hi_u8val);用法:由于GPIO_2仅需通过输出高低电平即可实现控制LED

的亮灭,因此应将GPIO_02引脚配置为GPIO引脚用途,相应的设置代码如下:hi_io_set_func(HI_IO_NAME_GPIO_2,HI_IO_FUNC_GPIO_2_GPIO);若要使GPIO

默认保持高低电平状态,可以配置GPIO

的上下拉功能,该功能由hi_io.h头文件中

的配置函数提供:hi_u32

hi_io_set_pull(hi_io_name

id,hi_io_pull

val);用法:如设置GPIO_02引脚默认处于高电平状态,则设置上拉的代码应当如下:hi_io_set_pull(HI_IO_NAME_GPIO_2,HI_IO_PULL_UP);华为海思的GPIO操作函数(5/7)深圳信息職業技術学院SHENZHEN

INSTITUTEOFINFORMATIONTECHNOLOGY第47页HI_GPIO_IDX_14,

//表示GPIO14}hi_gpio_idx;与hi_io.h中GPIO的枚举常量相对应,也可以直接使用hi_io.h中的常量用于设置id对应的GPIO

选择dir值指定的输入或输出功能,注意IO须设置GPIO

用途。

hi_u32

hi_gpio_set_dir(hi_gpio_idx

id,hi_gpio_dirdir);typedef

enum{HI_GPIO_DIR_IN

=0,//表示输入HI_GPIO_DIR_OUT//

表示输出}hi_gpio_dir;

表示输入与输出功能的枚举类型华为海思的GPIO

操作函数(6/7)typedef

enum{HI_GPIO_IDX_0,//表示GPIO0深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第48页华为海思的GPIO操作函数(7/7)

T

IN

M

術NTEC设置id对应的GPIO

输出val值指定的高或低电平,注意GPIO

须设置输出功能hi_u32hi_gpio_set_ouput_val(hi_gpio_idx

id,hi_gpio_value

val);typedef

enum{HI_GPIO_VALUEO=0,//

表示低电平HI_GPIO_VALUE1

//

表示高电平}hi_gpio_value;表示GPIO

电平状态的枚举类型获取id对应的GPIO

输出电平状态,

val参数为一个hi_gpio_value变量的地址,用于存放电平状态值

hi_u32hi_gpio_get_output_val(hi_gpio_idx

id,hi_gpio_value*val);获取id对应的GPIO

输入电平状态,

val参数为hi_gpio_value类型变量的地址,用于存放获取的电平状态

hi_u32hi_gpio_get_input_val(hi_gpio_idx

id,hi_gpio_value*val)第49页目录1.

华为海思的GPIO操作函数2.

鸿蒙系统的GPIO操作函数3.

鸿蒙系统的GPIO中断处理深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第50页鸿蒙系统在iot_gpio.h

头文件中提供了大量以IoT开头命名的通用操作函数申请并标记使用id

对应的GPIO,

在多人协同开发中避免重复使用同一个IOunsignedint

IoTGpioInit(unsignedintid);申请成功返回IOT_SUCCESS(值0),失败返回IOT_FAILURE设置指定id对应的GPIO功能,dir指定的输入或输出功能unsignedintIoTGpioSetDir(unsignedintid,IotGpioDirdir);

typedef

enum

{IOT_GPIO_DIR_IN=0,//

表示输入IOT_GPIO_DIR_OUT

//表示输出}IotGpioDir;输入输出类型鸿蒙系统的GPIO

操作函数(1/2)深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第51页设置id对应的GPIO输出val指定的高低电平unsigned

int

IoTGpioSetOutputVal(unsigned

int

id,IotGpioValue

val);获取id对应的GPIO输出电平状态,并将输出的电平值存入val指向的变量unsigned

int

IoTGpioGetOutputVal(unsigned

int

id,IotGpioValue*val);获取id对应的GPIO输入电平状态,并将获取的电平值存入val指向的变量unsigned

int

IoTGpioGetInputVal(unsigned

int

id,IotGpioValue*val);鸿蒙系统的GPIO

操作函数(2/2)typedef

enum{IOT_GPIO_VALUE0

=0,//表示低电平IOT_GPIO_VALUE1

//表示高电平}IotGpioValue;在IoT函数中表示GPIO电平状态的枚举类型深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第52页目录1.

华为海思的GPIO操作函数2.

鸿蒙系统的GPIO操作函数3.

鸿蒙系统的GPIO中断处理深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第53页只要GPIO的电平状态符合设定的中断触发条件,系统就会暂停当前工作而执行GPIO

中断处理函数,中断处理函数执行完成后,系统会恢复之前的工作。Hi3861

的GPIO

共有4种中断触发条件,可设置GPIO电平在高电平、低电平、下降沿(从高电平变成低电平的过程)与上升沿(从低电平变成高电平的过程)状态时触发中

断。鸿蒙系统的GPIO

中断处理(1/2)深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第54页在iot_gpio.h中提供的IoTGpioRegisterIsrFunc函数注册并设定GPIO的中断触发条件、中断处理函数等。unsigned

int

IoTGpioRegisterIsrFunc(unsigned

int

id,IotGpioIntType

intType,IotGpioIntPolarity

intPolarity,

GpioIsrCallbackFunc

func,char

*arg);参

:id:

定GPIOintType:

指定中断类型值IOT_INT_TYPE_LEVEL表示电平(高/低电平)触发中断值IOT_INT_TYPE_EDGE

表示边沿(上升/下降沿)触发中断intPolarity:指定中断触发的电平状态值IOT_GPIO_EDGE_FALLLEVELL0W表示低电平或下降沿状态触发中断,具体由intType

中断类型指定值IOT_GPIO_EDGE_RISE_LEVEL_HIGH表示高电平或上升沿状态触发中断func:指定I0中断处理函数,函数原型:void

irqFunc(char*arg)arg:

指定I0中断处理函数的arg

参数返回值:成功返回IOT_SUCCESS,失败返回IOT_FAILURE鸿蒙系统的GPIO

中断处理(2/2)深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第55页思考题1.

请简述对于GPIO操作函数,使用hixxx与IoTxxx的区别是什么?深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第56页本节小结●讲述了华为海思的GPIO操作函数。●讲述了鸿蒙系统的GPIO操作函数。●讲述了鸿蒙系统的GPIO中断处理。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第57页前言●本章主要讲述鸿蒙系统PWM应用开发。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第58页本节概述和学习目标●通过学习本节将能够了解鸿蒙系统PWM

应用开发。●通过本节学习可以熟悉:□

PWM工作原理□鸿蒙系统PWM函数□蜂鸣器的PWM

驱动深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第59页目录1.PWM

信号原理2.

鸿蒙系统PWM函数3.

PWM应用案例深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第60页PWM(Pulse

Width

Modulation,

脉冲宽度调制)基本上就是在一个重复的信号周期内分别控制高低电平的持续时间PWM

信号原理(1/3)深圳信息職業技術学院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第61页●信号周期:是指从一个上升沿到下一个上升沿信号(或从下降沿到下一个下降沿)的间

隔时间

。●信号频率:是指在一秒钟内有多少个PWM

的信号周期,如100Hz

表示一秒钟内有100

个信号周期,则每个信号周期时间为10毫秒,同样根据信号周期时间也可推算出频率。●占空比:是指在一个信号周期中,表示有效电平(通常是高电平)在整个周期时间中的

比例,如信号周期时间为100毫秒而高电平持续时间为10毫秒,则占空比为10%。PWM

信号原理(2/3)PWM信号三要素:深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第62页L3LQH44PN100MPOD11U4LED+

SS14C21luF/50V5LED->PWMTOUT3R271R5BACKLIGHTCON4PWM

信号原理(3/3)PWM调节LCD屏背光:深圳信息職業技術学院C20luF/50VSHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGYR26OR47VDD_5V第63页R421KMP3202GNDSWOVJ26ENFBIN2364目录1.

PWM

信号原理2.

鸿蒙系统PWM函数3.

PWM应用案例深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第64页Hi3861

芯片提供了6个PWM

控制器,

Hi3861芯片每个IO

都可以作为PWM

控制器的信号输出引脚,IO

具体所属的PWM

控制可以在鸿蒙工程中的hi_io.h

头文件中查看相

应的定义,如GPIO_03的用途定义:typedef

enum{HI_IO_FUNC_GPIO_3_PWM5_0UT,//作为第5个PWM控制器信号输出引脚}hi_io_func_gpio_3;鸿蒙系统PWM函数(1/3)深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第65页鸿蒙系统PWM函数(2/3)hi_pwm.h中已定义表示PWM控制器的枚举常量:typedef

enum

{HI_PWM_PORT_PWMO=0,HI_PWM_PORT_PWM1=1,HI_PWM_PORT_PWM2=2,HI_PWM_PORT_PWM3=3,HI_PWM_PORT_PWM4=4,HI_PWM_PORT_PWM5=5,HI_PWM_PORT_MAX}hi_pwm_port;深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第66页鸿蒙系统PWM函数(3/3)

SHENZHEN

INSTITUTE

OF

INFORMATION

TECHNOLOGYiot_pwm.h

头文件也提供了PWM

的操作函数:unsignedintIoTPwmInit(unsignedintport);//初始化PWM控制器//设置并启动第port个PWM控制器unsignedintIoTPwmStart(unsignedintport,unsignedshortduty,unsigned

int

freq);//freq参数是用于设置PWM输出的信号频率,因PWM控制默认使用CPU

160MHz作为时钟

信号源,需要除以一个分频系数才能得到PWM信号的频率,而且PWM配置寄存器只能存储

16位的分频系数(最大值为65535),所以PWM输出的信号频率必须大于2442Hz(1600000

00Hz

/65535)。//参数duty设置占空比unsignedintIoTPwmStop(unsignedintport);停止port对应的控制器输出PWM信号深圳信息職棠技術學院第67页目录1.

PWM

信号原理2.

鸿蒙系统PWM函数3.PWM应用案例深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第68页锥形纸盒线圈输入电流蜂鸣器的发声利用了电磁感应与振动产生声音的原理,当不同大小与方向的电流通过线圈时产生一个变化的磁场,当产生的磁场与磁体同向时相排斥时,纸盒则会被向外推,而

当产生的磁场与磁体异向时相吸引,纸盒则被向内拉,正是这种反复交替的推拉动作,让PWM应用案例(1/3)纸盒产生振动而发出声音。永久磁体深圳信息職棠技術學院SHENZHEN

INSTITUTEOF

INFORMATIONTECHNOLOGY第69页望

亮鸿

狮PWM

应用案例(2/3)蜂鸣器模块通过杜邦线与开发板的连接:深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第70页IoTGpioInit(BUZZER_IO);//

申请使用I0hi_io_set_func(BUZZER_I0,BUZZER_IOFUNC);//设置I0

用途IoTPwmInit(BUZZER_PWM);//初始化PWM控制器IoTPwmStart(BUZZER_PWM,50,freq);//设置PWM控制器的占空比与频率,并启动控制

器IoTPwmStop(BUZZER_PWM);//停止PWM控制器IoTPwmDeinit(BUZZER_PWM);//释放PWM控制器的使用PWM

应用案例(3/3)蜂鸣器模块的PWM驱动主过程:深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第71页思考题1.

请简述PWM信号的三要素。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第72页本节小结●讲述了PWM工作原理●讲述了鸿蒙系统PWM函数●讲述了蜂鸣器的PWM驱动深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第73页前言●本章主要讲述鸿蒙系统ADC应用开发。深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第74页本节概述和学习目标●通过学习本节将能够了解鸿蒙系统ADC

应用开发。●通过本节学习可以熟悉:□

ADC工作原理□鸿蒙系统ADC函数□

ADC应用案例深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第75页目录1.ADC

信号原理2.

鸿蒙系统ADC函数3.ADC应用案例深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第76页物联网系统电路中广泛采用数字信号与模拟信号。数字信号通过高电平代表二进制1,低电平代表二进制0,在数字电路中传输数据;而模拟信号则在模拟电路中,以

低电平至高电平间的任意电压值来表示信号的大小或强度。光敏电阻模块通过AO输出一个表示当前亮度的电压值,当感应到亮度越强时,AO输出的电压值越小,反

,AO

输出的电压值就越大。ADC信号原理(1/2)深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第77页ADC信号原理(2/2)ADC

信号的关键要素:●采样率:是指一秒钟内检测电路电压的次数,

ADC

采样率越高则信号的还原度更高,反之,

过低的采样率可导致丢失信号变化的关键过程。

Hi3861

ADC的最大采样率为157KHz。●量化精度:量化是指将采样得到电压值转换成

二进制值的过程,此二进制值的最大位数就是

量化精度。越高的量化精度,

ADC

转换的结果

就更加精确。

Hi3861

ADC的量化精度为12bit其中最低两位用于小数。深圳信息職棠技術學院SHENZHEN

INSTITUTE

OF

INFORMATIONTECHNOLOGY第78页取样:目录1.

ADC

信号原理2.

鸿蒙系统ADC函数3.

ADC应用案例深圳信息職業技術学院SHENZHENINSTITUTEOF

INFORMATIONTECHNOLOGY第79页复用管脚名称A

D

C

脚GPIO_04ADC1GPIO_05ADC2GPIO_07ADC3GPIO_09ADC4GPIO_11ADC5GPIO_12ADC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论