打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ARM版权警告,Keil废了那就换STCubeIDE吧
userphoto

2023.06.03 湖北

关注

长按识别图中二维码可在网页进行浏览

本篇文章就来记录下用STCubeIDE进行标准库开发

1、CubeIDE介绍

https://www.stmcu.com.cn/ecosystem/Cube/STM32CubeIDE

2、CubeIDE下载

点击上面的链接,登录即可下载

3、搭建Demo工程

新建一个工作空间

在这里插入图片描述

创建一个工程

在这里插入图片描述

选择芯片-STM32F103C8T6

在这里插入图片描述

填写工程信息

在这里插入图片描述

添加标准库到工程

标注库文件

在这里插入图片描述

添加到工程中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEwoOXrn-1685184951806)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230527161703375.png)]

配置工程属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o3PBkYPd-1685184951806)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230527162009980.png)]

添加效果如下

在这里插入图片描述

添加标准库头文件路径

这次可以直接使用快捷键AlL Enter调出配置界面,添加头文件路径

在这里插入图片描述

添加后如下

在这里插入图片描述

添加标准库的源文件到工程中

在这里插入图片描述

再次确认添加的头文件跟源文件

在这里插入图片描述

添加全局宏定义用于工程属性

在这里插入图片描述

移除重复的启动文件

把库文件自带的删除

修改内核文件

修改三行代码  每个加一个取地址符号

uint32_t __STREXB(uint8_t value, uint8_t *addr)
{
uint32_t result=0;

//__ASM volatile ('strexb %0, %2, [%1]' : '=r' (result) : 'r' (addr), 'r' (value) );
__ASM volatile ('strexb %0, %2, [%1]' : '=&r' (result) : 'r' (addr), 'r' (value) );
return(result);
}

/**
* @brief STR Exclusive (16 bit)
*
* @param value value to store
* @param *addr address pointer
* @return successful / failed
*
* Exclusive STR command for 16 bit values
*/

uint32_t __STREXH(uint16_t value, uint16_t *addr)
{
uint32_t result=0;

//__ASM volatile ('strexh %0, %2, [%1]' : '=r' (result) : 'r' (addr), 'r' (value) );
__ASM volatile ('strexh %0, %2, [%1]' : '=&r' (result) : 'r' (addr), 'r' (value) );
return(result);
}

/**
* @brief STR Exclusive (32 bit)
*
* @param value value to store
* @param *addr address pointer
* @return successful / failed
*
* Exclusive STR command for 32 bit values
*/

uint32_t __STREXW(uint32_t value, uint32_t *addr)
{
uint32_t result=0;

//__ASM volatile ('strex %0, %2, [%1]' : '=r' (result) : 'r' (addr), 'r' (value) );
__ASM volatile ('strex %0, %2, [%1]' : '=&r' (result) : 'r' (addr), 'r' (value) );
return(result);
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-936QY4ai-1685184951808)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230527170332383.png)]

编写用户自定义的LED代码编译发现了错误

原因:缺少文件

处理:漏加的文件

在这里插入图片描述

编译下载

编译通过:

在这里插入图片描述

用stlink下载

在这里插入图片描述

注意事项:

第一次下载使用STLINK可能需要更新以下固件,重新插拔几次点击更新即可。

后记:如果不小心改动了IED默认布局可以这样重新恢复默认

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lrjIY4Za-1685184951809)(C:\Users\23206\AppData\Roaming\Typora\typora-user-images\image-20230527185016884.png)]

参考博客:

STM32CubeIDE移植标准库_cubeide 标准库_white_loong的博客-CSDN博客

http://t.csdn.cn/dS2OP

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
电赛—简易直流稳压电源(源代码)
写出稳定的Modbus代码之点滴经验
树莓派3B
GCC 提供的原子操作
Linux 开发常用打印
TinyFlashDB:一种超轻量的可纠错的通用单片机Flash存储方案
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服