打印
[其他ST产品]

开发环境搭建-stm32CubeIDE进行标准库开发

[复制链接]
119|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
略略u|  楼主 | 2023-12-25 19:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
stm32CubeIDE介绍

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

stm32CubeIDE下载

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

搭建demo工程
  • 新建工作空间


使用特权

评论回复
沙发
略略u|  楼主 | 2023-12-25 19:10 | 只看该作者
创建一个工程

使用特权

评论回复
板凳
略略u|  楼主 | 2023-12-25 19:10 | 只看该作者
选择芯片-STM32F103C8T6

使用特权

评论回复
地板
略略u|  楼主 | 2023-12-25 19:10 | 只看该作者
点击“Next”

使用特权

评论回复
5
略略u|  楼主 | 2023-12-25 19:10 | 只看该作者
点击“Finish ”

使用特权

评论回复
6
略略u|  楼主 | 2023-12-25 19:10 | 只看该作者
添加标准库到项目工程文件目录下

使用特权

评论回复
7
略略u|  楼主 | 2023-12-25 19:11 | 只看该作者
配置工程属性

使用特权

评论回复
8
略略u|  楼主 | 2023-12-25 19:11 | 只看该作者
按F5刷新工程文件,添加的效果如下:

使用特权

评论回复
9
略略u|  楼主 | 2023-12-25 19:11 | 只看该作者
添加标准库头文件路径,直接使用快捷键AlL+Enter调出配置界面,添加头文件路径

使用特权

评论回复
10
略略u|  楼主 | 2023-12-25 19:11 | 只看该作者
添加后如下:

使用特权

评论回复
11
略略u|  楼主 | 2023-12-25 19:11 | 只看该作者
注意:头文件如果是灰色,则说明添加失败。

使用特权

评论回复
12
略略u|  楼主 | 2023-12-25 19:12 | 只看该作者
添加标准库的源文件到工程中

使用特权

评论回复
13
略略u|  楼主 | 2023-12-25 19:13 | 只看该作者
添加全局宏定义用于工程属性

使用特权

评论回复
14
略略u|  楼主 | 2023-12-25 19:13 | 只看该作者
删除重复的启动文件
删除的是除GCC编译器之外的启动文件

使用特权

评论回复
15
略略u|  楼主 | 2023-12-25 19:13 | 只看该作者
修改内核文件 core_cm3.c文件
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);
}

/**
* [url=home.php?mod=space&uid=247401]@brief[/url]  STR Exclusive (16 bit)
*
* @param  value  value to store
* @param  *addr  address pointer
* [url=home.php?mod=space&uid=266161]@return[/url]        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);
}

/**
1. @brief  STR Exclusive (32 bit)
2.  3. @param  value  value to store
3. @param  *addr  address pointer
4. @return        successful / failed
5.  7. 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);
}

使用特权

评论回复
16
略略u|  楼主 | 2023-12-25 19:13 | 只看该作者

使用特权

评论回复
17
略略u|  楼主 | 2023-12-25 19:13 | 只看该作者
调试器选择

使用特权

评论回复
18
略略u|  楼主 | 2023-12-25 19:13 | 只看该作者

使用特权

评论回复
19
略略u|  楼主 | 2023-12-25 19:14 | 只看该作者
编译下载

使用特权

评论回复
20
略略u|  楼主 | 2023-12-25 19:14 | 只看该作者
注意事项:
如果不小心改动了IED默认布局可以这样重新恢复默认

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

510

帖子

0

粉丝