本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运行起来。ios
DeveloperKit开发板git
在例程中分别用到两个led和一个按钮,上图中用红色的框标识出来。例程正确运行后,会有一个LED按1s的周期闪烁,另一个LED当按键被按下时,切换输出电平。本文中,各个硬件的分配以下表:github
外设名称app |
对应gpio编辑器 |
实验中的功能函数 |
LED1工具 |
PB6oop |
每秒闪烁1次ui |
LED2设计 |
PE3 |
当检测到按键时切换输出电平 |
按钮M |
PE11 |
经过中断方式检测按接下来咱们进入代码,并按照具体的硬件对应引脚修改源码。 |
同VS CODE打开AliOS-Things 2.0源码,若是您尚未AliOS-Things的源码,能够在VS code的控制台中经过git工具进行拉取,拉取命令以下:
git clone https://github.com/alibaba/AliOS-Things.git
打开源码后,咱们在源码的app/example/blink目录下,打开blink.c,在源码的顶部找到几个宏定义以下:
#define GPIO_LED_IO 18 #define GPIO_TRIGGER_IO 4 #define GPIO_INPUT_IO 5
上述的几个宏定义须要和咱们和实际的硬件对应,对应关系以下表:
宏定义 |
对应硬件 |
实际IO口 |
OS中的引脚编号 |
实验中的功能 |
GPIO_LED_IO |
LED1 |
PB6 |
22 |
每秒闪烁1次 |
GPIO_TRIGGER_IO |
LED2 |
PE3 |
67 |
当检测到按键时切换输出电平 |
GPIO_INPUT_IO |
按钮M |
PE11 |
75 |
经过中断方式检测按键 |
因为AliOS-Things对硬件进行了抽象,因此对GPIO的操做须要先按照必定的规则将MCU的GPIO转换为编号。转换规则为MCU的GPIO bank号 X 16 + 具体gpio在bank中的位置,bank的编号从0开始。如PB6,其bank号为1在bank中的位置为6,则PB6应被转换为 1 X 16 + 6 = 22;同理,PE3=4 x 16 + 3 = 67。由于例程不是为Developerkit开发板而写,因此须要修改例程中的宏第一以下:
#define GPIO_LED_IO 67 // PE3 #define GPIO_TRIGGER_IO 22 // PB6 #define GPIO_INPUT_IO 75 // PE11
完成修改后,保存blink.c文件。
在VS CODE环境中,在左下角的alios-studio中,点击编译目标选择按钮
此时编辑器顶部的命令输入框会弹出选择要编译的目标,此时选择blink
紧接着会继续要求选择开发板,此时选择Developerkit开发板。
接下来经过alios-studio工具条的编译按钮启动编译。
等待编译完成。
Making blink@developerkit.bin Making blink@developerkit.hex AOS MEMORY MAP |=================================================================| | MODULE | ROM | RAM | |=================================================================| | newlib_stub | 296 | 0 | | sal | 6977 | 250 | | kv | 3055 | 104 | | common | 256 | 12 | | libc_nano | 19649 | 602 | | kernel_init | 653 | 36 | | rhino | 16225 | 7821 | | developerkit | 5045 | 1403 | | vfs | 950 | 1141 | | digest_algorithm | 92 | 0 | | libgcc | 3320 | 0 | | stm32l4xx_cube | 26592 | 8506 | | cli | 6234 | 357 | | yloop | 2369 | 28 | | device_sal_bk7231 | 8542 | 265 | | sensor | 9451 | 303 | | osal | 1074 | 4 | | log | 412 | 20 | | hal | 164 | 12 | | blink | 325 | 24 | | atparser | 5882 | 297 | | armv7m | 1975 | 0 | | *fill* | 150 | 1599 | |=================================================================| | TOTAL (bytes) | 119688 | 22784 | |=================================================================| Build complete
将Developerkit链接至PC,确保开发板的STlink驱动已被正确安装。
经过alios-studio工具条中的下载按钮,将编译好的固件下载到开发板中。
烧写完成后开发板会自动运行,此时能够看到LED开始按1s为间隔闪烁。按动板上的“M”按钮,LED2会切换输出。这里要指出,blink Demo主要为了演示GPIO的HAL层操做函数,并无作按键去抖动工做,因此点按按钮时,可能会出现按一次LED2直接切换两次。也请你们在实际的代码设计中注意按键去抖能力的加入。到此,例程已成功完成运行。
原文连接 本文为云栖社区原创内容,未经容许不得转载。