双系统:ubuntu 22.04

电脑:拯救者Y7000

板子:stm32f103c8t6

一段摸爬滚打的辛酸史,囊括了我在过程中遇见的所有报错及解决方法!

记录自己实现的步骤,过程已经跟新完毕,笔者能力有限所用的方法以及代码考虑的不一定全面,也希望大佬多多补充!

目录

安装stm32cubeIDE

官网下载点击跳转官网

汉化

点击跳转下载汉化包

​编辑

安装stm32cubeMX

下载链接官网

多余的swp文件

clion下载安装

 激活码宝贵

clion汉化

配置环境变量

创建桌面图标

stlink安装

安装openocd

下载stlink

stm32环境搭建

编译工具gcc配置

调试软件OpenOCD

再次检查是否都正确安装

验证连接

报错1:,端口占用的原因

报错2:Warn : UNEXPECTED idcode: 0x2ba01477             Error: expected 1 of 1: 0x1ba01477

错误3:接口/stlink-v2.cfg已弃用

Clion嵌入式配置

​编辑​编辑

下载成功,祝大家都能实现!!!

安装stm32cubeIDE

官网下载点击跳转官网

自行下载最新版本

下载目录的终端命令

unzip en.st-stm32cubeide_1.14.0_19471_20231121_1200_amd64.sh.zip

等待

 解压后执行命令

sudo sh ./st-stm32cubeide_1.14.0_19471_20231121_1200_amd64.sh

下滑更多,接受y,回车

成功

汉化

点击跳转下载汉化包

自行选择最新版本

打开安装的stm32cubeIDE 点击“HELP”→“ Install NewSoftware”来添加新插件。

点击Add

点next,等新界面后接受条款,点完成finish,等下载结束就可以了

如果下载过程中会弹出弹框,全选然后点Trust

重启完成汉化,这个插件可以更改主题,自行上网学习,这里不截图了

安装stm32cubeMX

下载链接官网

unzip en.stm32cubemx-lin-v6-10-0.zip

解压后点击下面这个文件按步骤安装即可

个人问题:安装之后,由于之前我安装过,这次属于重装,由于以前版本没有卸载干净,桌面的图标打不开可以进计算机的/usr/share/applications文件查看,发现安装路径不一致

如果没有安装vim 需要执行sudo apt-get install vim

cd /usr/share/applications/

##根据自己文件名字自行修改

sudo vim st-stm32cubemx-v6-10.desktop

如果你们没有这个desktop文件也可以参考下文创建桌面图标的方式添加

[Desktop Entry]

Name=CubeMX

Comment=STMicroelectronics STM32CubeMX v6-10

GenericName=STM32CubeIDE

Exec=/home/h/Apps/tools/st/stm32cubemx_v6-10/STM32CubeMX

Icon=/home/h/Apps/tools/st/stm32cubemx_v6-10/help/STM32CubeMX.ico

Path=/home/h/Apps/tools/st/stm32cubemx_v6-10

Terminal=false

StartupNotify=true

Type=Application

Categories=Development

多余的swp文件

由于终端 vim和vi 编辑文件不正常退出会产生swp文件, 每次进入编辑这个文件时都弹出一堆提示信息,只读是因为权限不够,解决方法切换到root用户或者在前面加sudo

W10: 警告: 正在修改一个只读文件

需要删除这个缓存文件即可,再次进入就不会报错存在交换文件

sudo rm -r .st-stm32cubemx-v6-10.desktop.swp

clion下载安装

官网链接下载官网

解压完运行解压文件bin目录下的clion.sh

 激活码宝贵

分享一个好用网站,大家尽快使用不知道什么时候失效 点击这个

clion汉化

直接插件里面找,不用去专门下载汉化包,方便很多

配置环境变量

vim ~/.bashrc

#打开文件添加

alias clion=/home/<用户名>/<安装路径>/<安装文件名字版本>/bin/clion.sh

#保存退出终端运行下面代码

source ~/.bashrc

 

之后可以直接通过终端clion就可以打开,也可以通过创建桌面图标

创建桌面图标

cd /usr/share/applications

sudo vim clion.desktop

需要注意:Exec和Icon要根据自己clion的安装路径进行修改,并且Comment和Version要和自己安装的clion的版本号相对应。最后保存退出,就可以在应用程序里看到clion了。

#将下面的代码拷贝进去

[Desktop Entry]

Encoding=UTF-8

Name=CLion

Comment=clion-2023.3.2

Exec=/home/h/Apps/tools/clion-2023.3.2/bin/clion.sh

Icon=/home/h/Apps/tools/clion-2023.3.2/bin/clion.svg

Categories=Application;Development;Java;IDE

Version=2023.3.2

Type=Application

#Terminal=1

如果没有图标出现,可以右键复制或者命令行复制到桌面,我建议右键手动复制法,复制桌面图标右键允许运行

命令行复制如下,要多一步操作修改文件权限

cd /usr/share/applications/

##有的人桌面是英文,我的是中文

sudo cp clion.desktop ~/桌面/

##切换

cd ~/桌面/

##改权限 o+rx 增加其他用户读和执行权限

sudo chmod o+rx clion.desktop

stlink安装

安装openocd

ubuntu的apt可以直接安装

sudo apt install openocd

下载stlink

下载链接点击 —> github

选择合适版本的deb安装

stm32环境搭建

准备:

1、PC:双系统ubuntu22.04

2、开发板:STM32F103C8T6

3、交叉编译工具链:gcc-arm-none-eabi

我下载的是X86_64版本的

4、下载调试软件:OpenOCD

编译工具gcc配置

两个软件分别下载解压

tar -xvif gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2

tar -xvif openocd-0.12.0.tar.gz

 配置环境变量:如果遇到权限问题就su转到管理员用户或者chmod改变文件权限

vim ~/.bashrc

##将下面代码添加进文件最后,注意看路径是自己的安装目录

export PATH=$PATH:/home/h/Apps/tools/stm32_tools/gcc-arm-none-eabi-10.3-2021.10/bin

 保存关闭

##使环境变量生效

source ~/.bashrc

##查看安装的版本

arm-none-eabi-gcc -v

如果安装版本对不上,应该是系统自带有安装版本,这时候需要删除原来系统的版本

sudo apt-get remove gcc-arm-none-eabi

 具体详细过程可以看——>这里

#路径需要根据自己安装文件路径更改

exportline="export PATH=/opt/gcc-arm-none-eabi-10.3-2021.10/bin:\$PATH"

#判断配置是否成功

if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi

#生效文件

source ~/.profile

#查看版本

arm-none-eabi-gcc -v

安装完成也可以通过命令行arm 按Tab看看会不会有下面内容,有的话就安装成功了

arm-none-eabi-gcc --version

##查看版本信息

调试软件OpenOCD

进入openocd安装的文件夹使用以下命令可以查看调试器及其开关情况

./configure

#配置安装路径

./configure --prefix=/usr/local/openocd

下载相关依赖

sudo apt-get install libhidapi-dev libusb-1.0.0-dev

./configure --enable-cmsis-dap

 

 配置成功,接下来使用make指令编译安装 

make

sudo make install

##路径可以不用改

cd /usr/local/share/openocd/scripts

ls target

ls interface

interface文件夹下存放着下载器接口的文件,target下存放着目标芯片的配置文件(在使用openocd连接开发板时需要用到这两个配置文件)

再次检查是否都正确安装

su

gcc -v

arm-none-eabi-gcc -v

openocd -v

验证连接

ST-LINK: openocd -f <接口配置文件> -f <目标芯片配置文件>(绝对路径)telnet localhost 4444>halt 目标芯片挂起,相当于关机>flash write_image erase <烧录文件>(绝对路径)>reset 目标芯片复位>exit 关闭连接

openocd -f /usr/local/share/openocd/scripts/interface/stlink-v2.cfg -f /usr/local/share/openocd/scripts/target/stm32f1x.cfg

报错1:,端口占用的原因

第一次我的解决方法简单粗暴重启解决,之后我通过网上查询知道以下解决方法:

端口被占用了,用命令行看看是什么程序占用,下面两个都可以查看

lsof -i:端口号

netstat -tunlp|grep 端口号

知道pid后,再用kill指令杀掉。

kill -9 进程号

报错2:Warn : UNEXPECTED idcode: 0x2ba01477              Error: expected 1 of 1: 0x1ba01477

 恭喜你买到国产芯片(假的stm32f103c8t6)

解决方法:vim打开原来的那一行注释掉,改为set _CPUTAPID 0x2ba01477,保存关闭就可以了

cd /usr/local/share/openocd/scripts/target/

sudo vim stm32f1x.cfg

# set _CPUTAPID 0x1ba01477

set _CPUTAPID 0x2ba01477

错误3:接口/stlink-v2.cfg已弃用

WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg

警告:接口/stlink-v2.cfg已弃用,请切换到接口/stlink.cfg

这里我换成stlink.cfg就没有再报错了

openocd -f /usr/local/share/openocd/scripts/interface/stlink.cfg -f /usr/local/share/openocd/scripts/target/stm32f1x.cfg

 下图是没有报错的正常情况

Clion嵌入式配置

点击新建项目 ——> 嵌入式stm32CubeMx ——> 修正

出现下列绿色框说明,文件找对了,应用确认后返回新建项目

 构建工具链这也需要将路径选对,不然不出现小锤子

 

如果和我一样有弹窗点下载,这里面板配置文件跳过,这里生成默认的是STM32F0304Px后续可以在cubeMX里更改,参考下列步骤

要保持一致才能覆盖原文件,也可以通过Mx先创建再从Clion中打开,配置完成后直接点击右上方的Generate Code,点击是,

下面弹窗可以选择登录用户也可以直接不管,点继续,因为我点了登录之后一直登录不上,应该和网路有关。

登录不上无关紧要,这里点继续,就会来到下面这个窗口,打开close 回到clion

 回到Clion后板子文件已经改变了,自动重新配置,并且要求我们选择面板配置文件,面板配置文件中对不同型号的板子有不同的配置文件,择对应型号的复制到项目即可

我的板子是STM32F103C8T6 ,所以选了第一个,注意选复制到项目并使用,方便查看修改

报错:-- Warning: Did not find file Compiler/-ASM            -- Configuring incomplete, errors occurred!

点击边上三个点,配置编辑,调试器选择自定义GDB,修改OpenOCD为自己的安装路径,不确定的话可以命令行查询一下,找到自己安装文件的bin目录下的arm-none-eabi-gdb

whereis arm-none-eabi-gdb

应用后返回界面,打开cfg文件

添加stlink的烧录器配置代码,如下

source [find interface/stlink.cfg]

transport select hla_swd

source [find target/stm32f1x.cfg]

adapter speed 10000

点击小锤子,显示构建成功,连接板子点击运行

下载成功,最后祝大家都能实现!!!

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。