欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM32F030开发环境搭建

程序员文章站 2022-06-08 21:38:04
...

长话短说,由于突然要调试别人画的一块板子,用的是STM32F030调试一个ADC.

开发环境

STM32CubeIDE

基于以前开发单片机的经验,首先选择厂商提供的IDE往往有比较好的体验,加上一年前用keil开发过F103,感觉体验不佳,于是首先选择了STM32CUBE IDE,这个直接上ST官网就可以找到,ST官网还有个软件叫做STM32CubeMX,这个软件的功能是被STM32Cube包含的,因此可以先不用。
下载之后安装stm32cube ide。需要联网下载一些包。然后新建工程,选择使用的单片机,程序会提供HAL库来供开发。引脚功能以及时钟树初始化代码通过图形配置。但是需要注意,这里图形配置修改之后,会覆盖没有写在/*user code begin*/下的个人代码。
这里只需要了解库函数的使用就行了,实际上功能看代码就可以猜出来。
在这其中遇到一个报错,就是个人代码c文件需要包含STM32硬件功能的时候,需要包含头文件

#include "stm32f0xx_hal.h"//这里这个头文件要放在其他头文件前面,就是一个顺序问题。
//不然会报错一堆未定义。这个问题可能以后编译器会优化吧,目前先记着。

然后需要编译调试。我只有DAP link,但是stm32cube不能直接支持,这个可以用openocd来解决。但是,我遇到的问题是仍然不能正确连接上,这个问题后面说。

Keil MDK

由于连接不上,还是尝试用keil来开发。
网上一大片方法都很繁琐,效率很低,这里说一下一个简单点的方法。

首先上Keil官网下载最新版keil MDK,安装。
然后打开包管理器
STM32F030开发环境搭建

网络不好的话会比较慢,直接查找对应单片机,在右侧就可以下载对应的包。
然后新建工程,选择对应的单片机,
STM32F030开发环境搭建
点击下一步之后这时候会弹出来一个选择
STM32F030开发环境搭建
上面这个环境配置器同样可以在下图这个位置实事实时修改。STM32F030开发环境搭建
首先勾选上CMSIS core,DSP则视需求勾选。然后
STM32F030开发环境搭建
勾选上这三项,注意,这里需要有STM32cubeMX来支持,这样的话工程结构和STM32cubeIDE的非常一致。因此需要先到官网安装STM32cubeMX,这个软件需要JRE支持。
安装完成之后,勾选这三项下一步,会提示启动STM32CubeMX,然后可以通过cubeMX来配置初始化代码。同时具有HAL库。这时候开发就变得非常简单。在自动生成的主函数中写自己的代码就可以了。其他的一律不用过多费精力。

debug的使用

Keil 的debug网上有很多教程,流程基本一致,我使用的是SWD下载。这里遇到一点不一样的情况就是需要按着Reset才能找到器件ID,这里也不需要连接Reset引脚,
STM32F030开发环境搭建
只需要改成Under reset就可以正常通信了。由于一开始建立工程的时候选择好了器件,这里也不用修改FLash download内的器件选择。

软件使用总结

从一开始写程序到调试完AD,大概花了一个晚上+一个上午的时间,这其中费时间的主要是一个硬件问题,下面说,总体来说,如果不是STM32CubeIDE不能直接支持DAP linker,STM32cubeIDE上手更快,使用也更方便,个人也比较熟悉eclipse系列软件的debug流程。
使用Keil稍微花了点时间,一开始不是很愿意迁移工程,最后决定老老实实看一下用库函数建立工程,发现比网上那些流程简单多了,不过keil的使用仍然不是很顺手,可以考虑一下用vscode的插件。

硬件问题

由于之前从来没有用过STM32做东西,这次这个板子也不是我画的,所以犯了一个错。测试keil连接器件成功之后,使用keil开发每次打开debug都闪退,我一开始没有明白为什么,后来发现是因为Boot0没有下拉。。。下拉之后就能正常开发了。这个实际上花了不少时间。

总结

还是和上面说的那样,善用软件并尝试新方法还是能提高效率的,如果开发只会照着网上的博客来抄,来照着葫芦画瓢,并不能给自己以后的路提供什么经验。