STM32L476移植华为LiteOS系列教程---使用STM32CubeMX创建工程 3

举报
樊心昊 发表于 2020/04/17 12:04:38 2020/04/17
【摘要】 一、规划需要实现的功能 我使用的此款开发板,板载资源丰富,我预计实现以下功能 ①上电之后oled屏幕上方显示一个“LiteOS”,下方显示当前温度 ②移植shell组件,可以自定义各种命令,预计实现一个查询温度的指令 ③移植at框架,用于控制nbiot(bc95/bc28)实现定时上报温度到云平台 ④实现一个外部中断,用来干啥还没想好二、分析原理图并使用...

一、规划需要实现的功能

    image.png

    我使用的此款开发板,板载资源丰富,我预计实现以下功能

    ①上电之后oled屏幕上方显示一个“LiteOS”,下方显示当前温度

    ②移植shell组件,可以自定义各种命令,预计实现一个查询温度的指令

    ③移植at框架,用于控制nbiot(bc95/bc28)实现定时上报温度到云平台

    ④实现一个外部中断,用来干啥还没想好

二、分析原理图并使用STM32MXcube生成一个基于Makefile的工程

image.png

初步规划,我要用到:

    ①uart1用于和用户做shell交互和前期的debug输出调试信息

    ②uart3用于与nbiot进行通讯,收发AT指令及数据

    ③SCL1和SDA1,用于控制oled显示屏

    ④DHT11_DATA,用于采集温湿度信息

    ⑤KEY1-KEY4,可以做一些外部中断,用于控制啥我还没有想好

    ⑥SWD下载程序需要用到的管脚(SWCK、SWIO、RST)

开始使用STM32CubeMX创建Makefile工程

①选择单片机型号--->STM32L476RG

image.png

②通过图形化界面配置各个管脚的功能

    image.png

    USART1配置115200/8/N/1,个人习惯

    USART3配置9600/8/N/1,因为nbiot默认参数为9600/8/N/1

    DHT11配置为上拉输入即可

    使能SWD debug模式

    OLED管脚可以配置为IIC功能

    KEY1--KEY4和NB_RI配置输入即可

    LED、NB_EN配置为输出即可

    暂时这样配置,后面不合适在修改

    时钟配置图如下:

image.png

    中断配置如下:

    image.png

    image.png

    相信到这里有细心的读者会发现我的中断都没有使能,为什么这样做呢?

        放心,我没做错,因为我们最新版的LiteOS采用的是“接管中断”的方式,所以这里不需要使能中断,大家还要注意:不要勾选生成Pendable request for system service 和 Time     bass:System tick timer,因为LiteOS中已经帮我们实现好了这两个函数,如果你勾选了编译时会报错(如果你勾选了,不要惊慌,你可以找到它并将它注释掉即可)。

    image.png

    在工程管理页面中勾选Generate peripheral initializ as a pair of '.c/.h' files per peripheral,若不勾选所有的外设初始化函数都会直接生成到main.c文件中,很杂乱。

    image.png

    注意哟!这里要选择 Makefile,点击“GENERATE CODE”就大功告成啦,你将在指定目录下的到一个基于Makefile的工程。如下图

    image.png

整理以下文件,便于后期添加组件

    ①我们需要整理以下文件,便于后期添加其他组件,将Drivers\CMSIS\Device\ST\STM32L4xx\Include中的文件复制到Inc下,然后删除Drivers文件夹(因为iot-link SDK\drivers\third_party\ST中为我们提供了该文件夹下的所有文件,所以没必要保留)

    ②新建MXcube文件夹,将.mxproject和STM32L476.ioc两个MXcube相关的文件移入该文件夹、新建Targets/NB476文件夹,将Inc和Src移入该文件夹,并在该文件夹下新建GCC\appbuild文件夹,Hardware\Inc文件夹、Hardware\Src文件夹、OS_CONFIG文件夹、Lib文件夹、uart_at文件夹,

    ③并将STM32L476RGTx_FLASH.ld移动到GCC文件夹中并更改名称为os.ld

如下图:


├─MXcube                --存放MXcube新建工程生成的工程配置文件

├─targets                  --存放工程相关文件

    ├─NB476

        ├─GCC              --存放Makefile以及编译过程文件

            ├─appbuild   --存放编译过程文件和elf、hex、bin文件

        ├─Hardware      --存放用户使用的外设驱动代码,例如oled、dht11的代码放到这里

        │  ├─Inc

        │  └─Src

        ├─Inc                --存放STM32F476的初始化代码等头文件

        ├─Src                --存放STM32F476的初始化代码等源文件

        ├─OS_CONFIG  --存放LiteOS的配置文件

        ├─Lib                 --存放编译时可能使用到的分散加载文件

        └─uart_at           --存放at组件需要用到的驱动文件

PS:我的STM32Cube文件给大家放附件了,修改下生成路径,点下生成代码就可以用了。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。