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) 线程实现

更多推荐


所有评论(0)