完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
原文链接:https://harmonyos.51cto.com/posts/1469
直播主题: 直播实验设备 Hi3861核心板 + 交通灯外设板 + 底板,如下图: 1. Hello World(如果不想迈出第一步时就踩坑,请严格遵守步骤) 解说: 1) 对于初学者来说,SYS_RUN(HelloWorld); 可理解为一个“注册语句”,将 HelloWorld() 注册为一个板载应用程序的入口函数,即,我们所写的应用程序中第一个被调用的函数。 2) BUILD.gn 编译脚本是应用程序被编译的关键,必须仔细编写和修改 这里值得大家思考问题如下: 1) 为什么任务入口函数不是 C 语言中的 main() ?(反思:C 语言中的入口函数必须是 main() 吗?) 2) SYS_RUN(HelloWorld); 这行语句是什么?(函数调用?函数调用语句能位于全局作用域中?) 解说: 在鸿蒙设备开发中,应用程序入口函数并不等价于传统 C 语言中的 main() 函数,不能随意的 while(1); 或者做一些耗时的操作,必须快速的返回,否则会妨碍其它应用程序的运行;因此,在入口函数中创建专用的任务(线程)是一种“标准”操作。 2. 点灯操作(外设控制的经典操作模式) 解说: 1)GPIO (General Purpose Input/Output) 是核心板对外设的物理接口(可理解为计算机上的 USB 口,用于插入设备,扩展功能) 2)操作 GPIO 几乎贯穿整个外设控制的全部,所以,搞清楚外设所接入的 GPIO 引脚成为了关键 3. 按键编程(外设板上的物理按钮可看作一种 GPIO 设备) 解说: 1. 按键编程中需要设置回调函数,并且回调函数是在中断上下文中被调用,因此,回调函数不能做耗时操作(中断编程基本原则) 2. 如果回调函数需要改变某个全局变量,那么,对应的全局变量需要使用 volatile 关键字修饰(详见《C语言进阶剖析教程》) 5. 蜂鸣器控制 解说: 1) PwmInit(), PwmStart(), PwmStop() 都属于“耗时”操作,因此不能在中断回调函数中调用,必须放到任务执行函数中调用 2) 中断回调函数可理解为 Linux 中的中断上半部(快速执行并返回),任务执行函数为中断下半部(执行具体的数据处理操作) 预告: 按键编程时每次只能注册执行一个回调函数,即:要么下降沿触发回调,要么上升沿触发回调;因此,要捕捉按键“按下事件”和按键”释放事件"就需要另外想办法了,下一篇帖子会讨论这个方法,大家多多关注哦。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
2164个成员聚集在这个小组
加入小组495 浏览 0 评论
在OpenHarmony 3.1版本中,润和hispark hi3861智能家居套件I2C驱动OLED屏幕的驱动如何改写?
1468 浏览 1 评论
转发:【码上评选】在润和HiSpark的WiFIIoT开发板上使用 Harmony OS,实现智能花园喷灌控制系统,并连接上云
2403 浏览 0 评论
5014 浏览 0 评论
2356 浏览 0 评论
1582浏览 3评论
请问我根据润和的HID转蓝牙,自己画了一个板子,但是烧录镜像之后不能识别蓝牙。
3302浏览 2评论
DAYU200rk3568显示mipi_lcd驱动走的是hdf驱动还是linux标准rk驱动
3927浏览 2评论
1776浏览 1评论
DAYU200板子rk3568鸿蒙uboot源码包发下或者告诉下在哪里下载?
3821浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-7 05:27 , Processed in 0.680073 second(s), Total 60, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号