嵌入式の烧录程序

这个大伙应该都有写  纯属也是给自己 总结啊 这里说俩种方式 一种还是keil 一种是clion

一、 clion

使用CLion开发STM32 并烧录

环境配置

STM32CubeMX

正常安装即可。下载链接

MinGW

下载安装器。下载链接

选择安装

 改变一下路径

 等待下载完成后点击Continue进入下一步,勾选Basic Setup里的全部组件,点击Apply Changes下载。过程会很漫长,请耐心等待。

配置环境变量,在Path里添加MinGWbin文件夹:

打开命令行,输入gcc -v,出现类似下图信息即为安装成功

OpenOCD

下载最新版本。下载链接

下载后解压,将文件夹改名为OpenOCD并放置到一个目录,这个目录将在下文中Clion中配置。

arm-none-eabi-gcc

下载zip格式的。下载链接

 

下载后解压,放置到一个目录,这个目录将在下文中Clion中配置。

配置环境变量,在Path里添加所在文件夹的bin文件夹:

 打开命令行,输入arm-none-eabi-gcc -v,出现类似下图信息即为安装成功

Clion

Clion可以去Jetbrain下载,学生可以免费使用。下载安装好之后配置工具链,添加如下图的路径

新建项目

新建STM32CubeMX项目

选择用CubeMX打开

更换芯片型号

 将项目名改成前文Clion创建的工程名,将IDE改成STM32CubeIDE,然后点击生成代码,弹出是否overwrite选择yes

代码生成好之后点击Close,回到Clion,会弹出来这个对话框,这里先选择取消,后面再添加。

 打开设置,确定一下cmake为以下配置:

点击锤子按钮编译,如以上配置无误即可生成hexbin

 对于一个项目,不可避免地会用到第三方库或者自己创建的.c/.h文件,也就是需要修改CmakeList文件。但这里的CMakelist开头写明了#此文件从模板自动生成! 请勿更改!,其原因为在每一次使用CubeMX生成代码时此文件会被覆盖,用户的代码将不会被保存。所以需要修改模板文件CMakeLists_template.txt

如上图所示,需要增加头文件及编译文件。对于我们新增的编译文件,可以新增一个MY_SOURCE并在add_executable中添加${MY_SOURCES},可以避免修改原模板。

file里的GLOB_RECURSE意思是对该目录下的所有子文件进行递归添加。而GLOB则不进行递归,只在当前文件夹下查找。可以根据需求选择用哪种。*.*为通配符,意为添加文件夹下的所有文件。

烧录 

如使用STlink进行烧录,需要添加配置文件。在项目根目录下新建一个stlink.cfg,添加如下内容

若使用的不是STM32F1或者不是STlink仿真器,可以到OpenOCD安装目录的share\openocd\scripts下寻找对应的配置。芯片在target文件下,仿真器在interface文件夹下。

然后点击编辑配置

添加刚刚的配置文件

 然后点击三角形烧录固件

 查看寄存器

调试的时候点击寄存器,没加载svd文件是看不到的,这个文件在keil中可以找到

 路径如下:

然后全选即可显示。

代码优化

实测默认的代码优化会造成许多问题。修改模板文件CMakeLists_template.txt,优化等级均改为-O0

然后在Cubemx中重新生成代码以刷新Cmakelist文件。

重定向printf

与在keil5中重定义fputs()函数不一样,在GCC编译器中需要重定义的是__io_putchar(int ch)

在main中添加如下代码并引入头文件#include <stdio.h>

 然后即可使用printf函数。且此段代码在Keil和Clion中均可正常编译运行。

whaosoft aiot http://143ai.com  

二、keil

回来再写这个 应该都会

未完待续....

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值