• 在Developerkit开发板上运行blink例程


    本文将介绍怎么样在VScode环境下,将AliOS Tings提供的blink例程在Developerkit开发板上运行起来。
    413f8cd9e7ea5426c663ce40bb9ab8b3efc03556
    DeveloperKit开发板
     
    在例程中分别用到两个led和一个按钮,上图中用红色的框标识出来。例程正确运行后,会有一个LED按1s的周期闪烁,另外一个LED当按键被按下时,切换输出电平。本文中,各个硬件的分配如下表:
    外设名称
    对应gpio
    实验中的功能
    LED1
    PB6
    每秒闪烁1次
    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中,点击编译目标选择按钮
    256281c1a6f3dee6ef45a64b7d3ec2cee979ffbc
    此时编辑器顶部的命令输入框会弹出选择要编译的目标,此时选择blink
    061bb5cfbf1e7bcee5358013b30baa2741e498d9
    紧接着会继续要求选择开发板,此时选择Developerkit开发板。
    2ab4808d31eb931edd4e735ae50f473b9a43978d
    接下来通过alios-studio工具条的编译按钮启动编译。
    e43a7a48afa73182c81626f775ce0ae049618093
    等待编译完成。
    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驱动已被正确安装。
    3b06db95172f9fc8a5a68358d6d679fd742cdb6c
    通过alios-studio工具条中的下载按钮,将编译好的固件下载到开发板中。
    3fe46c048844e03bfead21ad1a20fafce4b58e0f
    烧写完成后开发板会自动运行,此时可以看到LED开始按1s为间隔闪烁。按动板上的“M”按钮,LED2会切换输出。这里要指出,blink Demo主要为了演示GPIO的HAL层操作函数,并没有做按键去抖动工作,所以点按按钮时,可能会出现按一次LED2直接切换两次。也请大家在实际的代码设计中注意按键去抖能力的加入。到此,例程已成功完成运行。
     
     
    阅读原文​​​​​​​
  • 相关阅读:
    Word 语法高亮
    AsyncFileUpload+Editor
    Silverlight QQ
    网页变黑白…
    Accelerator in Internet Explorer 8
    VS2010中文版安装Silverlight4 Tools…
    Win7下要求以管理员权限运行程序
    AjaxControlToolkitSeaDragon
    WebSlices in Internet Explorer 8
    <当和尚遇到钻石>读书笔记
  • 原文地址:https://www.cnblogs.com/zhaowei121/p/10000886.html
Copyright © 2020-2023  润新知