• cubeIDE快速开发流程


    目录

    一、cubeIDE下载、安装

     二、创建工程及配置芯片引脚

    三、编码及编译

    四、加载已编译程序到硬件及测试

    五、程序运行效果


    一、cubeIDE下载、安装

            STM32CubeIDE是STM32Cube软件生态系统的一部分,是面向st芯片的高级C/C++开发平台,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。它基于Eclipse®/CDT™框架和用于开发的GCC工具链,以及用于调试的GDB。它支持集成数以百计的现有插件,正是这些插件使Eclipse® IDE的功能趋于完整。STM32CubeIDE集成了STM32CubeMX的STM32配置与项目创建功能,在通过所选板卡或示例选择一个空的STM32 MCU或MPU,或者预配置微控制器或微处理器之后,将创建项目并生成初始化代码。在开发过程的任何时间,用户均可返回外设或中间件的初始化和配置阶段,并重新生成初始化代码,期间不会影响用户代码。

            下载地址:STM32CubeIDE - STM32的集成开发环境 - STMicroelectronics,需要邮箱获得下载许可

     汉化包地址:Index of /eclipse/technology/babel/update-site/

    本文安装时汉化包版本:

    在线安装路径:Index of /eclipse/technology/babel/update-site/R0.19.2/2021-12/

    直接下载离线安装:http://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/R0.19.2/babel-R0.19.2-2021-12.zip   

    下载完stmcubeIDE后,双击安装包完成安装:

    安装完成后,去help->install new software配置安装汉化包

     选择简体中文完成在线安装

     二、创建工程及配置芯片引脚

            汉化完后,重启软件,在文件->新建工程->stm32 project,输入自有芯片型号,本文是STM32L496VGTx

     点击下一步,输入工程名,选择工程路径,完成工程创建

             工程完成创建后,直接弹出cubeMX配置界面,可以图形化配置芯片引脚接口

            开启USB串口能力

             本文仅开始外部高速时钟(HSE)

             系统时钟频率直接拉满到80MHz

             为了简单测试工程,仅仅配置三个按键及三个LED灯的GPIO

             工程管理,保持默认设置,

             代码生产页面,只按需生成,为每个接口类型生成独立头文件及源码文件

             高级设置页面,保持设置,1)本文GPIO选择HAL库实现,也可以点击选择LL库,2)GPIO初始化调用直接生成(main.c中实现),也可在Do Not Generate Call勾选去掉,也可以去掉Visibility(Static)选项,不生成GPIO初始化函数

             点击菜单栏保存或代码生产按钮,实现cubeMX配置到源码生成

     代码生成后,GPIO接口映射信息配置在main.h中

             生成GPIO接口源码为gpoi.h/c,仅仅提供了GPIO初始化函数,实现时调用HAL库函数来实现的。

            先创建自己的按键及LED驱动,该驱动同样是基于HAL库提供的函数实现,而HAL库和底层硬件打交道,间接帮我们实现对硬件读写控制等能力。

    三、编码及编译

            在工程目录右键->新建->source Folder创建一个源目录,并添加key.h/c、led.h/c四个源文件

             key.h

    1. /*
    2. * key.h
    3. *
    4. * Created on: Sep 29, 2022
    5. * Author: py_hp
    6. */
    7. #ifndef KEY_H_
    8. #define KEY_H_
    9. #include "main.h"
    10. #include "gpio.h"
    11. GPIO_PinState get_key0_val();
    12. GPIO_PinState get_key1_val();
    13. GPIO_PinState get_key2_val();
    14. #endif /* KEY_H_ */

    key.c

    1. /*
    2. * key.c
    3. *
    4. * Created on: Sep 29, 2022
    5. * Author: py_hp
    6. */
    7. #include "key.h"
    8. GPIO_PinState get_key0_val()
    9. {
    10. return HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin);
    11. };
    12. GPIO_PinState get_key1_val()
    13. {
    14. return HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin);
    15. };
    16. GPIO_PinState get_key2_val()
    17. {
    18. return HAL_GPIO_ReadPin(KEY2_GPIO_Port,KEY2_Pin);
    19. };

    led.h

    1. /*
    2. * led.h
    3. *
    4. * Created on: Sep 29, 2022
    5. * Author: py_hp
    6. */
    7. #ifndef LED_H_
    8. #define LED_H_
    9. #include "main.h"
    10. #include "gpio.h"
    11. void Toggle_led0();
    12. void Toggle_led1();
    13. void Toggle_led2();
    14. void set_led0_val(GPIO_PinState PinState);
    15. void set_led1_val(GPIO_PinState PinState);
    16. void set_led2_val(GPIO_PinState PinState);
    17. #endif /* LED_H_ */

    led.c

    1. /*
    2. * led.c
    3. *
    4. * Created on: Sep 29, 2022
    5. * Author: py_hp
    6. */
    7. #include "led.h"
    8. void Toggle_led0()
    9. {
    10. HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
    11. }
    12. void Toggle_led1()
    13. {
    14. HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
    15. }
    16. void Toggle_led2()
    17. {
    18. HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
    19. }
    20. void set_led0_val(GPIO_PinState PinState)
    21. {
    22. HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,PinState);
    23. };
    24. void set_led1_val(GPIO_PinState PinState)
    25. {
    26. HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,PinState);
    27. };
    28. void set_led2_val(GPIO_PinState PinState)
    29. {
    30. HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,PinState);
    31. };

            在main.c加入key和led实现,在代码预留用户自行区域加入自主编写代码,这样cubeMX改动后再次生产代码不会修改抹去自己已经写入或修改的代码

            添加头文件

             添加函数调用实现,可自行斟酌调用

              右键点击项目,进入属性页面(也可以直接菜单进入),勾选本项目编译程序输出文件格式支持

             点击编译按钮完成编译

    四、加载已编译程序到硬件及测试

            点击help->ST-Link更新,运行配置更新,便于直接将编译好的软件下载的硬件上。

            点击运行工具按钮的运行配置,进入配置页面,在STM32 C/C++ Application新建调试配置,每个项目仅配置一次,后面就可以直接点击运行按钮加载编译好的软件到硬件,

            将电脑与硬件用数据线连接,点击运行下载程序

             或者采用其他下载工具,如STM32 ST-LINK Utility加载

    五、程序运行效果

            展示效果如下:

    1. Toggle_led2();//闪灯
    2. set_led0_val(get_key0_val());//按键亮灯
    3. HAL_Delay(100);

            【1】闪灯

             【2】按键亮灯

  • 相关阅读:
    supOS APP开发者课程练习册
    软件测试 - 概念篇
    200道Java面试题
    基于JAVA南京传媒学院门户网计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    算法-递归
    学习记忆——图像篇——图像记忆
    第1章 初识视图文件(*.vue)
    基于深度学习的苹果叶片病害检测系统(含UI界面、yolov8、Python代码、数据集)
    Arduino中安装ESP32网络抽风无法下载 暴力解决办法 python
    每天一个设计模式之工厂模式(无工厂、简单工厂、工厂方法、抽象工厂)
  • 原文地址:https://blog.csdn.net/py8105/article/details/127712728