文章目录
Stm32CubeIDE
开发环境介绍
也就是说IDE是集合了CubeMX 和MDK5的。
区别:
获取路径
官网:https://www.st.com/en/development-tools/stm32cubeide.html
A盘路径:A盘\6,软件资料\1,软件\6,STM32CubeIDE
JAVA环境路径
官网获取:www.java.com
A盘路径:A盘\6,软件资料\1,软件\6,STM32CubeIDE\JAVA
新建工程
- Start
- 搜索芯片型号
- 输入工程名,其它保持默认,结束。
- 忽略报错,搜索PF9
- 点开,选择输出
- 双击配置GPIO参数
- 选择默认电平,上下拉,推挽开漏,输出速率。
- 配置RCC晶振。
bypass clock source 旁路时钟源,就是指内部晶振。
crystal resonator 外部晶振。
这里选择外部晶振,取决于你的电路。
- 选择SWD烧录
- 登陆ST账号,下载支持包
点击help -管理软件pacage。
下载407最新支持包。
- 点击生成代码
- 分开生成.c与.h
使用技巧
编译
点击 Manage Configurations 处,在弹出的配置窗口选中 Release,然后选择 Set Active,表示默认激活点击 Release 模式
直接在 Project 菜单栏也可以选择设置激活 Debug 或者 Release 版本:
生成Bin&hex
- 右键工程
- settings
- build output
- 勾选bin或hex
调试器选择
run-configuations-调试器
选择elf文件
选择调试器
DAP下载
在左边打开cfg文件。
请务必在打开文件后将其另存为一个新的.cfg 文件,以免后续修改被 IDE 直接覆盖。
DAP 仿真器 CubeIDE 默认是不支持的,需要进行一些改动才可:
最后在调试界面选择一下配置
常用快捷键
工程搜索
Remote Search 搜索框可以搜索整个工作区或者电脑的其它盘的文件
C/C++ Search 是搜索整个工程的 C/C++文件,并在右下角列出搜索到的文件。
File Search 搜索范围是整个工作区的每个文件,在右下角会列出包含 HAL_Init 字符串的文件名字。
调试技巧
添加宏定义
选中 f103_test 工程右键 然 后 点 击 Properties 进 入 工 程 属 性 设 置 , 点 击 C/C++ General→Paths andSymbols→Symbols→Add→添加自己要定义的宏
release和debug切换之后宏定义也会切换。
添加头文件
右击工程-properties
包含绝对路径
观察窗口
STM32CubeIDE 上集成了非常多的窗口
查看函数调用关系
如果想看一个函数调用了那些函数,可以先选中此函数,然后右键,选中打开 Open Call Hierarchy。打开了 Open Call Hierarchy 窗口以后,可以查看各个函数的具体调用关系。
查看头文件调用关系
先选中此文件,右键,然后选择 Show In→Include Browser 打开包含关系列表:
得到:
查找工程中某个文件
Navigate(导航)→open Resource→:
打开 Build Analyzer 窗口
可以查看内存信息。
Window→Show View→Build Analyzer
在 Memory Regions 可 以 查 看 内 存 的 分 配 区 域
- 内 存 地 址0x20000000-0x2000ffff 是 RAM 的 一 个 范 围 , 大 小 是 64KB
- FLASH 内 存 地 址 范 围 是0x08000000~0x0807ffff,大小是 512KB。
Memory Details 下是具体的内存映射关系
VMA 表示虚拟地址,一般是 RAM 位置,LMA 一般是加载地址:
Memory 窗口
Memory 窗口可以查看具体的某个地址的数据
在调试的时候才可以用。
我们要观察某一段内存的数据,可以点击+号图标
在 Memory 窗口会列出从地址 0x20008000 开始以后的地址数据,是 16 进制的数据,且每 4 位为一个单元。
右键点击,选择 Format,可以改成1位1个单元。
Static Stack Analyzer 窗口
静态堆栈分析窗口,如果有必要,也可以打开此窗口进行分析。
Window→Show View→Static Stack Analyzer
单步调试
如果之前在工程中已经配置过调试选项,可以直接点击进行调试
寄存器查看
CubeIDE 支持打印浮点数设置
STM32CubeIDE 的默认设置不支持使用 sprintf/printf 函数来发送浮点数。
Properties, 选 择C/C++Build→Settings→MCU Settings
外部中断
配置
-
使能中断
-
中断优先级
优先级分组,抢占优先级与子优先级。
- 中断服务函数
printf
调用的系统调用函数
函数实现
打印出中文,改编码GBK