目录

1、下载与安装

2、下载与调试

3、ITM调试

4、添加文件,文件夹

5、Cubeide1.8版本的代码提示

6、修改主题:

7、新建文件夹的说明

8、页面显示不正常?

9、汉化

10、1.8版本的老是炸掉

11、关于stlink报错的问题

12、修改库文件位置

13、添加浮点数打印选项

14、修改文件编码

15、keil移植工程怎么弄


1、下载与安装

国内下载路径

可以去安富莱的论坛下载,安富莱同样提供mdk等的链接,下载速度极快(最近好像没更新了)

【安富莱】STM32CubeIDE,STM32CubeMX,STM32CubeProg,STLINK驱动,标准库等镜像下载(2021-02-27) - 开发环境 - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn)

软件包管理

因为默认包在c盘,如果cpan空间不够可以考虑下

 选择从本地导入即可

那么这个包又是哪里来的呢,其实是cubemx下载的,hhh还是默认下载的,不过就是cubemx可以指定位置,这里我打开cubemx看下

 打开选择更新设置

 可以看到这里有下载文件夹,这里我们改到其他地方即可

 打开文件夹就能看到包的位置,大概就是几个压缩包和对应的文件夹,另外就是几张广告,打开其实里面也有例程,算是比较官方的

 可以看到F1的里面支持四块板子,下面还有个网页的概述

 打卡就是例程了,可以看到后面支持的板子,还有库的类型,有hal库和LL库以及两种库的混合

2、下载与调试

调试选择

 可以看到调试使用的是debug目录下的elf文件

调试器支持本地和远程,openocd以及st-link还有j-link

这里先用st-link下载,当然前提是安装st-link驱动

 安装完成后会有这个提示,右键可以看到显示st-link, 配置页面如下

这里关注一点swv,后面可以来了解它的强大,这里我们点击应用之后关闭即可

 如果提示需要更新,进入更新,拔掉再插入就进入dfu模式了,即可进行更新

 更新完后会提示更新成功,之后点击小虫子就进入debuge模式了,主要关注一个是调试设置窗口,一个是观察窗口

 这里我们在while循环中加入一小段代码,用来查看变量

  	HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
    HAL_Delay(1000);
  	i++;
  	if(i == 10)
  		i=0;

在前面的现场表达式这里添加我们需要观察的变量 ,点击全速运行,可以看到变量变化情况

 如果没有窗口可在这里添加

使用jlink调试,选择jlink即可其他的不变

调试结果,还是一样的

 

3、ITM调试

首先当然是调试这里选上swv的调试

 可以看到需要接上SWO这个引脚

 准备一段代码,这个是用来重定向printf用的

uint32_t _write(uint32_t file, char *ptr, uint32_t len)
{
	uint32_t i = 0;
	for(i = 0; i < len; i++)
	{
		ITM_SendChar((*ptr++));
	}
	return len;
}

 下面我们加入while循环中的代码

  	HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);
  	HAL_Delay(1000);
  	i++;
  	printf("Hello world i = %d\n", (int)i);
  	if(i == 10)
  		i=0;

 使能swv调试

 添加这两个窗口

 修改配置选项

 如下配置

 可以看到这里多了一个port0

 点击开始

 之后开启调试,可以看到打印信息

 在图表这里看到变量变化情况

 上面我用的是jlink,市面上买的小的st-link没有这种口,需要的要买st官方的st-link,都是标准jtack口,对着接就行

使用DAP调试 

这里很遗憾我尝试结果是失败了,看到安富莱论坛有这个回答,可以参考下

STM32CubeIDE使用OpenOCD老是提示Could not verify ST Device - 开发环境 - 硬汉嵌入式论坛 - Powered by Discuz! (armbbs.cn)

openocd下载:Download OpenOCD for Windows (gnutoolchains.com) 

 下载完解压就ok,放到你想放的文件夹,没有其他操作

Cubeide大致操作如下,选择openocd的方式,会自动给你配好端口号 

 之后在下载的openocd的文件夹下面开启命令行,输入下面命令就可以启动了

openocd -f interface/cmsis-dap.cfg -f target/stm32f1x.cfg

 可以看到开始监听这个端口,这里注意上面的cubeide部分一定要关闭现场表达式这块

 之后debuge这里报错,验证芯片失败,原来我的芯片是盗版的hhh

 openocd这里也报错

 后面网上也找了一些方法,具体查看这个子标题最开端处,目前暂未解决

 openocd另外两种方法:

就是向每次这样输命令太繁琐了,你就可以简化一点,第一种是采用bat命令,就是win的处理文件

比如我将我常用的几种 写成bat,每次要用直接双击就行了

里面的内容就是上面的话,放到openocd文件夹的bin目录下

 另一种是使用cubeide的外部扩展工具,参见这篇博主文章,1.8的跑不动我就懒得跑了

通过External Tools在STM32CubeIDE下使用DAP-LINK_lone5moon的博客-CSDN博客_stm32cubeide使用dap

4、添加文件,文件夹

项目文件夹处右键即可添加.c .h文件

 如果我们需要移植某个库或者自己的文件夹,就需要一个文件夹

 

还是一样的右键新建,直接新建

 就可以对新建的文件夹进行添加.c.h文件了

但是这个时候他还没有进入我们的工程目录,需要添加下,这里右击工程,进入工程属性

 可以看到这里有一个路径的选项

点击添加选择文件系统即可

可以在包含中看到已加入

 这样就能移植整个文件夹了,不过还有一个办法可以不用包含,就是直接使用文件路径

 这样就可以了。

5、Cubeide1.8版本的代码提示

效果如下

 将文件放到cubeide的安装目录下

 复制替换即可

阿里云盘分享  这里我贴下我的网盘地址

6、修改主题:

如果窗口弄乱了需要复位,选择复位透视图即可

7、新建文件夹的说明

 可以看到选择添加到路径就会这样

8、页面显示不正常?

 点击后如下所示

如果是不小心把布局弄乱了,在这里选择复位透视图即可

 还有就是大纲,如果没有打开,可以打开下

效果如下所示 

9、汉化

选择安装新软件

 然后点击添加,这里我选择本地导入,算了还是留邮箱吧,阿里云盘不让分享这个。

 之后就是选择中文包,然后一路下一步就OK了,这个时候会没反应,注意不是没反应,是再安装,这个是需要一点时间的,观察右下角会有安装进度,安装完后重启就OK了,效果如下

10、1.8版本的老是炸掉

我用了1.8版本的提示报错,然后cubeide所有功能都用不了了,不太清楚,是用了一段时间后的现象,我怀疑是那个自动提示代码的锅,是报的java的错,没看懂,搜索也没人出现过,就先这样吧!

11、关于stlink报错的问题

报错信息如下,这个其实是一个很让我头疼的问题,因为我是从2020年开始接触cubeide,然后那个时候下载的cubeide就有了这个问题,看了一些论坛说是盗版芯片什么的,但是关键是我所有的板子都有这个问题,就很奇怪,提供的解决方案是使用openocd来调试,反正我感觉支持st-link为啥要用openocd呢?

Error in final launch sequence:

Failed to start GDB server
Failed to start GDB server
ST-Link设备进行初始化时出错。

然后我终于发现只要改下这个端口号就行了,这里原来是61235,修改为6123即可

下载成功,之后进入调试也是OK的了!!!

12、修改库文件位置

cubeide和cubemx的文件默认是放在c盘的,这样会很不方便,因此我们可以修改位置放到其他我们想要的地方,而且也不用下两份文件

cubemx的地址如下,在帮助下选择更新设置

这里第一个就是位置了 

 cubeide的位置藏得比较深,窗口下面首选项

 可以看到有个固件更新这一栏,是灰色的,他也提示了要关闭ioc,就是图形化配置的这个页面才可以更改,我们改到我们想要的位置,应用即可

 下面可以查看库

可以看到我们之前的的库已经导入进去了

 

13、添加浮点数打印选项

右键进入属性->设置->MCU设置->勾选浮点数打印 

14、修改文件编码

在其他中输入GBK即可 

 

15、keil移植工程怎么弄

很多时候我们可能需要移植一个工程,但是又不想破坏原来的工程,应该怎么弄呢

之后我们在cubemx中进行修改即可,修改完成之后进行生成工程,这里如果直接编译会报错,报错信息如下:

这是因为我们缺少了启动文件,需要我们手动添加启动文件,添加的方法如下:

 从别处复制一个启动文件过来,最好是原来的工程,只要保证芯片型号一致即可,之后添加进去,如下所示:

再次编译可以看到编译成功了 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐