一、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

/** key.h**  Created on: Sep 29, 2022*      Author: py_hp*/#ifndef KEY_H_
#define KEY_H_#include "main.h"
#include "gpio.h"GPIO_PinState get_key0_val();
GPIO_PinState get_key1_val();
GPIO_PinState get_key2_val();#endif /* KEY_H_ */

key.c

/** key.c**  Created on: Sep 29, 2022*      Author: py_hp*/
#include "key.h"GPIO_PinState get_key0_val()
{return HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin);
};GPIO_PinState get_key1_val()
{return HAL_GPIO_ReadPin(KEY1_GPIO_Port,KEY1_Pin);
};GPIO_PinState get_key2_val()
{return HAL_GPIO_ReadPin(KEY2_GPIO_Port,KEY2_Pin);
};

led.h

/** led.h**  Created on: Sep 29, 2022*      Author: py_hp*/#ifndef LED_H_
#define LED_H_
#include "main.h"
#include "gpio.h"void Toggle_led0();
void Toggle_led1();
void Toggle_led2();void set_led0_val(GPIO_PinState PinState);
void set_led1_val(GPIO_PinState PinState);
void set_led2_val(GPIO_PinState PinState);#endif /* LED_H_ */

led.c

/** led.c**  Created on: Sep 29, 2022*      Author: py_hp*/
#include "led.h"void Toggle_led0()
{HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
}void Toggle_led1()
{HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
}void Toggle_led2()
{HAL_GPIO_TogglePin(LED2_GPIO_Port,LED2_Pin);
}void set_led0_val(GPIO_PinState PinState)
{HAL_GPIO_WritePin(LED0_GPIO_Port,LED0_Pin,PinState);
};void set_led1_val(GPIO_PinState PinState)
{HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,PinState);
};void set_led2_val(GPIO_PinState PinState)
{HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,PinState);
};

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

添加头文件

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

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

点击编译按钮完成编译

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

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

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

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

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

五、程序运行效果

展示效果如下:

   Toggle_led2();//闪灯set_led0_val(get_key0_val());//按键亮灯HAL_Delay(100);

【1】闪灯

【2】按键亮灯

cubeIDE快速开发流程相关推荐

  1. STM32F767ZI NUCLEO144 基于CubeIDE快速开发入门指南

    刚入手的NUCLEO-F767ZI:整合官网资源,理清思路,便于快速进行快发: 文章目录 1 NUCLEO 系列 2 NUCLEO-F767ZI 3 环境搭建 3.1 Keil/IAR安装 3.2 C ...

  2. 基于RflySim平台的底层飞控快速开发流程

    RflySim底层控制开发流程 前言 开发条件 本文使用 一.平台配置 二.开发流程-姿态控制器设计 1. 整体模型 1)搭建多旋翼仿真模型 2)设计遥控器映射信号 3)设计控制器 2. 软件在环仿真 ...

  3. python小项目实例流程-Python小项目:快速开发出一个简单的学生管理系统

    原标题:Python小项目:快速开发出一个简单的学生管理系统 本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: ...

  4. 快速开发工作流_03_集成在线流程设计器_内置用户免登录

    接上一篇:快速开发工作流_02_集成在线流程设计器 https://gblfy.blog.csdn.net/article/details/103676784 文章目录 八.内置用户免登录 8.1. ...

  5. 快速开发工作流_02_集成在线流程设计器

    接上一篇:快速开发工作流_01_简单流程案例https://gblfy.blog.csdn.net/article/details/102881983 文章目录 七.流程设计器 modeler 7.1 ...

  6. 快速开发工作流_01_简单流程案例

    文章目录 一.介绍 二.技术选型 三.登录/绘制流程图 3.1. 需要先登录 3.2. 绘制流程图 四. 使用说明 4.1. 选择数据库 4.2. 增加 mybatis, modeler,idm 等配 ...

  7. springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率

    JEECG(J2EE Code Generation) 是一款基于代码生成器的智能开发平台,采用代码生成+手工MERGE半智能开发模式, 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻 ...

  8. 简单Android app开发_app开发流程:如何简单快速进行app手机开发?

    现在大家的生活已经离不开手机,手机成为最主要的生活工具,app自然也成为最大的流量入口.在流量为王的时代,app手机开发自然成为企业营销及创业赚钱的选择.app开发流程是怎么样的?如何简单快速地开发一 ...

  9. 快速开发申请加班工资审批流程系统(1)

    二次开发:快速开发申请加班工资审批流程系统(1) 很多时候在公司内部,都要手动填写一些表格,久了之后,也没能去数字化流程化,将一些流程简化和自动化.网上有很多自动化OA的开源流程快速搭建和实现方案,例 ...

  10. 快速上手Django(一) 项目结构、开发环境、开发流程、视图、视图集

    文章目录 一.Django 基础 1. django 项目的目录结构 2. 开发环境(Pycharm 启动django) 1)先找到mange.py 2)项目配置远程python解释器 3)点击`ed ...

最新文章

  1. 我是一名Cisco爱好 者
  2. 新装ubuntu9.10后配置全过程(很多常见问题的解决方法)
  3. 有一种灾难,叫数据中心被大火烧了
  4. 移动设备将成为2014年最大的安全风险
  5. Linux上DNS实现工具之bind详叙
  6. 关于PChar(@string)的疑惑
  7. button hover逐渐变色_两当水库界桩@产品长久不变色 - 两当安全防护
  8. Jsoup获取所有链接
  9. 1.4编程基础之逻辑表达式与条件分支 08 判断一个数能否同时被3和5整除
  10. http请求头中Referer的作用及危害
  11. java 1 0_【Java】1.0 开发环境
  12. mysql8和5.7区别_MySQL 8、MySQL 5.7和Percona server for MySQL性能比较
  13. Python 成仙之路
  14. android助手最新版本,Android 开发助手功能及版本介绍
  15. python泊松_Poisson Distribution——泊松分布
  16. 全面了解什么是TPS、QPS以及两者的区别
  17. 北京国际学校ib成绩排名如何?
  18. 原来手机做提词器这么简单,只要掌握这两个技巧
  19. ffmpeg视频特效
  20. 最活跃FPGA论坛推荐社区

热门文章

  1. QString中如何设置上下角标(Qt)
  2. 海康 安全码 修改密码_「海康威视客户服务」“通道被锁定”“网络不可达”“未认证的设备”……NVR4.0 Lite通道专题来袭!...
  3. 【数据库】理解一对一、一对多、多对多关系
  4. Android Design 与 Holo Theme
  5. 华为网络计算机登陆,华为路由器如何登录192.168.3.1入口设置界面
  6. java表白代码,神操作!
  7. 史上最全的前端资源汇总(上)
  8. ls-dyna常用结构单元类型
  9. 方舟同账号一个服务器能建小号吗,你玩明日方舟开小号吗?游戏虽好但请莫贪多,多号同玩会让人疲劳...
  10. matlab 散点图 对数,matlab – 对数 – 对数散点图上的半透明标记