版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
深圳信息職棠技術学院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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026杭州文化广播电视集团所属有关事业单位招聘6人考试备考试题及答案解析
- 2026新疆和田佰安人力资源有限责任公司招(竞)聘4人考试备考题库及答案解析
- 2026江西南昌大学人工智能学院科研助理招聘1人考试参考题库及答案解析
- 2026福建南平武夷创谷产业园区发展有限公司招聘市场化项目工作人员若干人考试参考题库及答案解析
- 2026浙江台州市中心医院(台州学院附属医院)安保岗位招聘5人考试备考题库及答案解析
- 2026江西南昌市市场监督管理执法稽查局招聘仓库管理人员1人考试备考题库及答案解析
- 2026北京海淀区恩济里体大幼儿园招聘2人考试备考题库及答案解析
- 2026河北石家庄城市更新集团有限公司劳务派遣制人员招聘6人考试参考题库及答案解析
- 2026四川广安市中医医院招聘6人考试备考试题及答案解析
- 2026广东深圳人力资源保障局转发深圳港引航站招聘引航员6人考试参考题库及答案解析
- 2026届云南省昆明市西山区民中数学高一上期末考试模拟试题含解析
- 2025年大学第一学年(食品营养与健康)营养学基础测试题及答案
- 2025-2030乌干达基于咖啡的种植行业市场现状供需分析及投资评估规划分析研究报告
- 2026年共青团中央所属单位招聘66人备考题库及答案详解一套
- 人民警察法培训课件
- 2026年哈尔滨职业技术学院单招职业适应性考试题库参考答案详解
- 2025云南昆明巫家坝建设发展有限责任公司及下属公司第四季度社会招聘31人历年真题汇编带答案解析
- 输尿管切开取石课件
- 小猫绝育协议书
- 66kV及以下架空电力线路设计标准
- 人工搬运培训课件
评论
0/150
提交评论