博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Developerkit开发板上运行blink例程
阅读量:6601 次
发布时间:2019-06-24

本文共 3605 字,大约阅读时间需要 12 分钟。

本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运行起来。

DeveloperKit开发板

在例程中分别用到两个led和一个按钮,上图中用红色的框标识出来。例程正确运行后,会有一个LED按1s的周期闪烁,另外一个LED当按键被按下时,切换输出电平。本文中,各个硬件的分配如下表:

外设名称对应gpio实验中的功能LED1PB6每秒闪烁1次LED2PE3当检测到按键时切换输出电平按钮MPE11通过中断方式检测按接下来我们进入代码,并按照具体的硬件对应引脚修改源码。

同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_IOLED1PB622每秒闪烁1次GPIO_TRIGGER_IOLED2PE367当检测到按键时切换输出电平GPIO_INPUT_IO按钮MPE1175通过中断方式检测按键

由于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.binMaking 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直接切换两次。也请大家在实际的代码设计中注意按键去抖能力的加入。到此,例程已成功完成运行。

本文为云栖社区原创内容,未经允许不得转载。

转载于:https://juejin.im/post/5bf650d66fb9a04a102eead1

你可能感兴趣的文章
J2E——网络编程练习
查看>>
VirtualBox移植
查看>>
HTTP要被抛弃? 亚洲诚信携手宝塔开启HTTPS加密快速通道
查看>>
Chrome: 完全移除对WoSign和StartCom证书的信任
查看>>
RecyclerView侧滑删除功能
查看>>
记一个hystrix异常
查看>>
9.02-Spring IOC 容器中Bean的生命周期
查看>>
6.6 tar打包
查看>>
BigDecimal去除小数点后多余的0
查看>>
微信自动抢红包的实现(Demo已增加查看TopActivity功能)
查看>>
Spring MVC核心技术
查看>>
Linux监控平台搭建(三)--自定义监控项目、问题告警及处理
查看>>
TCP协议如何保证传输的可靠性
查看>>
Spring Cloud + Spring Boot + Mybatis + shiro + RestFul + 微服务
查看>>
Spring Cloud云架构 - SSO单点登录之OAuth2.0 登出流程(3)
查看>>
建站心得之discuz门户程序相比ZBLOG具有哪些优势[图]
查看>>
编程之美 测试赛 石头剪刀布
查看>>
签名问题
查看>>
软件开发各阶段交付物列表
查看>>
2018-05-24 Linux学习
查看>>