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
/** 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快速开发流程相关推荐
- STM32F767ZI NUCLEO144 基于CubeIDE快速开发入门指南
刚入手的NUCLEO-F767ZI:整合官网资源,理清思路,便于快速进行快发: 文章目录 1 NUCLEO 系列 2 NUCLEO-F767ZI 3 环境搭建 3.1 Keil/IAR安装 3.2 C ...
- 基于RflySim平台的底层飞控快速开发流程
RflySim底层控制开发流程 前言 开发条件 本文使用 一.平台配置 二.开发流程-姿态控制器设计 1. 整体模型 1)搭建多旋翼仿真模型 2)设计遥控器映射信号 3)设计控制器 2. 软件在环仿真 ...
- python小项目实例流程-Python小项目:快速开发出一个简单的学生管理系统
原标题:Python小项目:快速开发出一个简单的学生管理系统 本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: ...
- 快速开发工作流_03_集成在线流程设计器_内置用户免登录
接上一篇:快速开发工作流_02_集成在线流程设计器 https://gblfy.blog.csdn.net/article/details/103676784 文章目录 八.内置用户免登录 8.1. ...
- 快速开发工作流_02_集成在线流程设计器
接上一篇:快速开发工作流_01_简单流程案例https://gblfy.blog.csdn.net/article/details/102881983 文章目录 七.流程设计器 modeler 7.1 ...
- 快速开发工作流_01_简单流程案例
文章目录 一.介绍 二.技术选型 三.登录/绘制流程图 3.1. 需要先登录 3.2. 绘制流程图 四. 使用说明 4.1. 选择数据库 4.2. 增加 mybatis, modeler,idm 等配 ...
- springmvc+activiti 完美整合- 流程在线设计+代码生成器+UI快速开发库,提高一半的开发效率
JEECG(J2EE Code Generation) 是一款基于代码生成器的智能开发平台,采用代码生成+手工MERGE半智能开发模式, 可以帮助解决Java项目60%的重复工作,让开发更多关注业务逻 ...
- 简单Android app开发_app开发流程:如何简单快速进行app手机开发?
现在大家的生活已经离不开手机,手机成为最主要的生活工具,app自然也成为最大的流量入口.在流量为王的时代,app手机开发自然成为企业营销及创业赚钱的选择.app开发流程是怎么样的?如何简单快速地开发一 ...
- 快速开发申请加班工资审批流程系统(1)
二次开发:快速开发申请加班工资审批流程系统(1) 很多时候在公司内部,都要手动填写一些表格,久了之后,也没能去数字化流程化,将一些流程简化和自动化.网上有很多自动化OA的开源流程快速搭建和实现方案,例 ...
- 快速上手Django(一) 项目结构、开发环境、开发流程、视图、视图集
文章目录 一.Django 基础 1. django 项目的目录结构 2. 开发环境(Pycharm 启动django) 1)先找到mange.py 2)项目配置远程python解释器 3)点击`ed ...
最新文章
- 我是一名Cisco爱好 者
- 新装ubuntu9.10后配置全过程(很多常见问题的解决方法)
- 有一种灾难,叫数据中心被大火烧了
- 移动设备将成为2014年最大的安全风险
- Linux上DNS实现工具之bind详叙
- 关于PChar(@string)的疑惑
- button hover逐渐变色_两当水库界桩@产品长久不变色 - 两当安全防护
- Jsoup获取所有链接
- 1.4编程基础之逻辑表达式与条件分支 08 判断一个数能否同时被3和5整除
- http请求头中Referer的作用及危害
- java 1 0_【Java】1.0 开发环境
- mysql8和5.7区别_MySQL 8、MySQL 5.7和Percona server for MySQL性能比较
- Python 成仙之路
- android助手最新版本,Android 开发助手功能及版本介绍
- python泊松_Poisson Distribution——泊松分布
- 全面了解什么是TPS、QPS以及两者的区别
- 北京国际学校ib成绩排名如何?
- 原来手机做提词器这么简单,只要掌握这两个技巧
- ffmpeg视频特效
- 最活跃FPGA论坛推荐社区
热门文章
- QString中如何设置上下角标(Qt)
- 海康 安全码 修改密码_「海康威视客户服务」“通道被锁定”“网络不可达”“未认证的设备”……NVR4.0 Lite通道专题来袭!...
- 【数据库】理解一对一、一对多、多对多关系
- Android Design 与 Holo Theme
- 华为网络计算机登陆,华为路由器如何登录192.168.3.1入口设置界面
- java表白代码,神操作!
- 史上最全的前端资源汇总(上)
- ls-dyna常用结构单元类型
- 方舟同账号一个服务器能建小号吗,你玩明日方舟开小号吗?游戏虽好但请莫贪多,多号同玩会让人疲劳...
- matlab 散点图 对数,matlab – 对数 – 对数散点图上的半透明标记