当前位置: 首页 > news >正文

BearPi小熊派 鸿蒙开发入门笔记(2)

2.HarmonyOS内核开发

2.1 任务管理

1.基本概念

2 任务相关概念

3 任务调度机制

4 实现任务管理【部分接口】

1.创建任务

osThreadAttr_t 结构体说明

任务创建案例
(1) thread_example.c文件

(2) 同目录下 BUILD.gn

(3) 上级目录下 BUILD.gn

2.扩展案例

使用 任务创建、任务挂起、任务恢复、任务删除

(1) thread_example.c文件

(2) 同目录下 BUILD.gn

(3) 上级目录下 BUILD.gn

显示效果

不方便显示

关闭系统信息

更改初始化 代码

更改后结果

2.2 软件定时器

1 基础概念

2 运行机制

3 软件定时器接口

4 基础案例

实现两个软件定时器 触发输出

(1) my_timer_example.c

(2) 同级目录下 BUILD.gn

(3) 上级目录下 BUILD.gn

(4) 结果

5 扩展案例

代码

结果

2.3 信号量

1 信号量概念

2 信号量运行机制

3 信号量接口

4 扩展案例

(1) semaphore_example.c

(2) 结果

2.4 事件

1 基本概念

2 运行机制

3 事件接口

4 扩展案例

创建3个线程,3个事件

线程1:优先级25,发布 事件1、2

线程2:优先级25,要求同时接收事件1、2、3 才触发

线程3:优先级24,接收到事件1或2 就触发,并发送事件3

(1) 核心函数

(2) 线程具体实现

(3) 结果

2.5 互斥锁

1 互斥锁基本概念

2 运行原理

3 互斥锁接口

4 扩展案例

创建三个优先级的线程和互斥量

高优先级线程 延迟1s,获取互斥量后释放

中优先级线程 只显示

低优先级线程 获取互斥量并释放

(1) 核心函数

(2) 线程实现

(3) 结果

2.6 消息队列

1 基本概念

2 运行机制

3 消息队列接口

4 扩展案例

线程1:每秒发送数据 给消息队列

线程2:每三秒 读取消息队列的个数并 读取一个消息,当消息队列满时,删除消息队列

(1)核心代码

(2) 线程实现

(3) 结果

2.7 GPIO

1 GPIO接口

2 原理图

3 扩展案例

线程1:GPIO2设置为 输出模式的GPIO,控制LED 每秒闪烁

线程2:读取 GPIO2的 复用功能、GPIO方向、输出电平值

(1) 核心代码

(2) 线程实现

(3) 结果

2.8 GPIO中断

1 GPIO中断接口

2.按键对应GPIO引脚

3.扩展案例

创建两个Gpio中断,

Gpio11设置下降沿触发中断,中断函数 点亮LED,并改变中断触发方式 为 上升沿触发

Gpio12 设置下降沿触发中断,,中断函数 关闭LED,并屏蔽 Gpio12中断

中断函数1中

(1)核心代码

(2) 线程实现

(3) 结果

2.9 PWM

1 PWM接口

2.扩展案例

(1)核心代码

(2) 线程实现

(3) 结果

描述:LED 实现呼吸灯 并输出 呼吸次数

呼吸次数<3 正常呼吸,在3~6之间,关闭;6~8 之间 恢复呼吸;在8~10之间 常亮;在10之后 删除线程

2.10 ADC

1 ADC接口

2 ADC对应引脚

3 案例

按键F1 对应GPIO11,对应ADC1的通道5,利用ADC的API 获取转换后的值

(1) 核心代码

(2) 具体实现

(3) 结果

2.11 IIC

1 IIC接口

2 原理图

3 案例

(1) 核心代码

创建I2CTask任务

(2) 具体实现

(3) storeText内部实现-------------用到再看

3.1 准备文本消息 NDEF(NFC Data Exchange Format)

3.2 写入数据---空

2.12 UART

1 UART接口

2 案例

(1) 核心代码

(2) 线程实现

http://www.dtcms.com/a/507454.html

相关文章:

  • 《信息系统项目管理师》2017 年下案例分析题及解析
  • 一、新建一个SpringBoot3项目
  • 外贸英文网站开发网站要用什么软件做
  • 凡科网站可以做seo优化周口网站设计
  • 笔记本触摸板无法使用怎么办 5种方法快速恢复
  • C#高级:数据库中使用SQL作分组处理5(Rank() 排名函数)
  • 51单片机基础-外部中断INT
  • dz网站恢复数据库阻止网站查到访问者ip
  • 【机器学习05】神经网络、模型表示、前向传播、TensorFlow实现
  • 视频教做家常菜的网站wordpress招商平台
  • 三角洲行动 游戏特色 巨 椰 云手机
  • 正则表达式魔法:用Python Re模块驯服文本数据的艺术
  • 《算法每日一题(1)--- 连续因子》
  • 019数据结构之栈——算法备赛
  • 网站添加内容PHP amp MySQL网站建设宝典
  • 消防有哪些网站合适做烟台网站推广排名
  • Python跳跳棋游戏:从基础实现到高级算法详解
  • gitlab搭建教程以及操作
  • 为什么称 OC 的 UIKit
  • 广州小网站建设天河区pc端网站建设
  • SpringBoot + Vue + Redis 实现验证码登录功能
  • 程序设计基础第3周作业
  • 安卓系统中线程优先级Priority查看方式汇总
  • 北京企业建设网站制作呼叫中心系统解决方案
  • IDEA EmmyLua 配置+调试
  • Win11 微软账户登录后,设置没有同步到新电脑,怎样强制刷新?
  • 网站页面设计教程济宁定制网站建设推广
  • 轮询那些事儿
  • GitLab安装
  • Redis八股