有了上一节:【ARM 裸机】BSP 工程管理,所打下的基础,本节我们来完成一个蜂鸣器的工程应该比较简单;
1、准备工作
首先还是做一下准备工作,就不细说了,删除原来的工作区(ledc_bsp.code-workspace),然后另存现在的工作区到 beep 目录下,接着新建 beep 的 .h 和 .c 文件;
发现没有 .vscode 目录,那就要拷贝上一节的 .vscode 到现在的目录下;
修改 c_cpp_properties.json;
2、驱动编写
2.1、查看硬件连接
蜂鸣器 beep 的控制 IO 为 SNVS_TAMPER1(原子的教程说的),由三极管 S8550 PNP 型来驱动,IO 输出低电平蜂鸣器响,IO 输出高电平蜂鸣器不响;
2.2、蜂鸣器初始化
初始化包含设置 IO 复用、设置电气属性、GPIO 初始化;
2.3、蜂鸣器控制
不要忘记了函数声明;
3、调用
在 main.c 中包含 beep 的头文件以及调用 beep 的初始化函数;
在 Makefile 中稍作修改即可,改一下目标的名字、包含的头文件,包含的源文件三个地方;
编译;
烧写验证;
I.MX6ULL_beep
将SD卡插到开发板上之后,现象是:led1 亮的同时,蜂鸣器响,500ms 后,led1 灭,同时蜂鸣器不响。
文章评论