目录
1. PKE8720DF-C13-F10开发板
2. 需要准备的材料
3. 获取源代码
4. 开始修改相关代码
5. 执行编译
6. 烧录image
7. 开关控制LED灯
1. PKE8720DF-C13-F10开发板
PKE8720DF-C13-F10是基于PKM8720DF-C13-F10模组集成的开发板,支持 Wi-Fi 和 BT 5.0 协议。它使用 USB TypeC 连接器供电,具有自动上传电路。
PKE8720DF-C13-F10的基本信息、外设接口、引脚定义以及Arduino IDE配置的详细信息可以参考这一篇:
使用PKE8720DF-C13-F10实现Arduino example——Button_deer_vickey的博客-CSDN博客
2. 需要准备的材料
在开始之前,我们先准备好以下几样物件。
(1) PKE8720DF-C13-F10开发板,1块。
(2) 长短脚LED灯,1个。
(3) 开关按键,1个。
(4) 杜邦线,4根。
(5) type-C usb连接线,1根。
除硬件准备以外,下面软件需求有。
(1) ImageTool工具。
(2) Linux/Windows的开发编译环境,包含libc6-i386,lib32ncurses5,make,bc,gawk,ncurses。
3. 获取源代码
PKM8720DF-C13-F10模组配套的SDK放在了GitHub开源网站,可通过下面的链接获取。
GitHub - ambiot/ambd_sdk: Release SDK for AmebaD
4. 开始修改相关代码
我们进入source code,进入跟LED灯按键操作相关的目录。
cd ${ambd_sdk}/project/realtek_amebaD_va0_example/example_sources/GPIO/raw/gpio/
在这里,我们先看一下readme.txt文件,里面提到:
Pin name PA_12 and PB_5 map to GPIOA_12 and GPIOB_5:
- PA_12 as input with internal pull-high, connect a push button to this pin and ground.
- PB_5 as output, connect a LED to this pin and GND.
意思是说,将PA_12连接到开关按键,PB_5连接到LED灯。而通过PKE8720DF-C13-F10的引脚图我们可以看到,上面并没有PB_5,不过没有关系,我们可以换一根引脚,这里选择PB_2。
选择PB_2的时候,我们需要修改一下这个目录下的代码文件src/main.c。
vim src/main.c
可以看到下面这一行,将其中的“_PB_5”,修改成“_PB_2”即可。
#define GPIO_LED_PIN _PB_5
然后,将这个main.c覆盖掉hp路径下的启动main.c文件。
cd src/
cp -f main.c ../../../../../src/src_hp/
5. 执行编译
进入下面两个目录,执行“make all”命令,先后编译lp和hp。
cd ${ambd_sdk}/project/realtek_amebaD_va0_example/GCC-RELEASE/project_lp
make all
cd ${ambd_sdk}/project/realtek_amebaD_va0_example/GCC-RELEASE/project_hp
make all
在这个过程中,如果遇到有文件可执行权限报错的问题,将报错的文件添加可执行权限之后,重新执行“make all”命令。或者干脆整个目录通过chmod命令添加可执行权限。
直至出现下面的字样,表示编译完成。
========== Image manipulating end ==========
编译完成之后,在lp和hp目录下,分别存在下面两个路径的子目录。
cd ${ambd_sdk}/project/realtek_amebaD_va0_example/GCC-RELEASE/project_lp/asdk/image
ls -l
cd ${ambd_sdk}/project/realtek_amebaD_va0_example/GCC-RELEASE/project_hp/asdk/image
ls -l
在里面,可以找到下面几个需要加载的image文件。
${GCC_RELEASE}/project_lp/asdk/image/km0_boot_all.bin
${GCC_RELEASE}/project_hp/asdk/image/km4_boot_all.bin
${GCC_RELEASE}/project_hp/asdk/image/km0_km4_image2.bin
6. 烧录image
我们找到上面三个image文件之后,可以开始进行烧录了。
将板子插上type-C usb口,连到PC上,通过设备管理器(此电脑->右键属性->设备管理器),查看此时插入的是哪一个com口。
然后,在ImageTool中选择对应的com口,再在下方选择image的目录中,从上到下依次选择“km0_boot_all.bin”,“km4_boot_all.bin”,“km0_km4_image2.bin”三个文件的路径,再点击下方的download按钮,即开始烧录。
烧录完毕之后,会出现“All images are sent successfully”的字样。
7. 开关控制LED灯
此时,我们将LED灯的长脚连接到板子的PB_2引脚,短脚连接到板子的GND(接地),按键开关连接到板子的PA_12和GND。
<iframe id="gZ7RjBne-1690437598562" src="//i2.wp.com/live.csdn.net/v/embed/315062" allowfullscreen="true" data-mediaembed="csdn"></iframe>
WeChat_20230727115344
然后按板子上的reset键重启,尝试去按下和松开按键开关,会发现按下的时候,LED灯亮,松开的时候,LED灯灭。
此时,我们就可以看出,板子上的自带RGB灯也点亮了。这是因为,RGB灯本身也有A12、A13和A14控制的缘故。