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

news2024/12/22 2:03:33

stm32CubeIDE介绍

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

stm32CubeIDE下载

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

搭建demo工程

  1. 新建工作空间
    在这里插入图片描述
  2. 创建一个工程
    在这里插入图片描述
  3. 选择芯片-STM32F103C8T6
    在这里插入图片描述
  4. 点击“Next”
    在这里插入图片描述
  5. 点击“Finish ”
    在这里插入图片描述
  6. 添加标准库到项目工程文件目录下
    在这里插入图片描述
  7. 配置工程属性
    在这里插入图片描述
  8. 按F5刷新工程文件,添加的效果如下:
    在这里插入图片描述
  9. 添加标准库头文件路径,直接使用快捷键AlL+Enter调出配置界面,添加头文件路径
    在这里插入图片描述
    添加后如下:
    在这里插入图片描述
    注意:头文件如果是灰色,则说明添加失败。
  10. 添加标准库的源文件到工程中
    在这里插入图片描述
  11. 添加全局宏定义用于工程属性
    在这里插入图片描述
  12. 删除重复的启动文件
    删除的是除GCC编译器之外的启动文件
  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);
}

/**
 * @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);
}

/**
 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);
}

在这里插入图片描述

  1. 调试器选择
    在这里插入图片描述
    在这里插入图片描述
  2. 编译下载
    在这里插入图片描述

注意事项:

如果不小心改动了IED默认布局可以这样重新恢复默认
在这里插入图片描述

IDE配置gitee

  1. 快捷键AlL+Enter调出配置界面
    在这里插入图片描述
    注意:第2步骤:先选中仓库,再点击“Create Repository”
    在这里插入图片描述

  2. 推送至本地
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    第2步骤中:提交本地说明

  3. 远程仓库信息的填写
    在这里插入图片描述

  4. 填写gitee创建的仓库路径,账号和密码使用gitee的账号,账号不要使用gitee邮箱,使用你的gitee用户名。
    在这里插入图片描述

  5. 点击Next
    在这里插入图片描述

  6. 一路确认。。
    在这里插入图片描述
    提示代码已经合并到Gitee.com。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588765.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SM国密算法(二)-- OpenSSL库中分离算法

一、OpenSSL简介: OpenSSL 是用于传输层安全性 (TLS) 和安全套接字层 (SSL) 协议的一个强大、商业级和功能齐全的工具包。它也是一个通用的密码学库,包含有RSA、SM4、DES、AES等诸多加密算法。 OpenSSL GitHub地址 二、移植过程 1. 文件目录 下载在…

除蚂蚁文件数据恢复大师之外,还有哪些相似的软件?

数据丢失是一件常见的事情,许多人都会遇到这样的问题。为了解决这个问题,出现了许多数据恢复软件,其中包含蚂蚁文件数据恢复大师。但是,除了蚂蚁文件数据恢复大师之外,还有哪些类似的软件呢?本文为您整理了…

笔试强训总结3

作者:爱塔居 专栏:笔试强训 作者简介:大三学生,希望能同大家一起进步! 1.以下代码运行输出的是 public class Person{ private String name "Person"; int age0; } public class Child extends Person{ p…

selenium clear()无效的解决办法

做自动化时,在往输入框中send_keys前往往需要先清空一下这个输入框里的内容,避免输入框原本有内容或默认值,导致最终输入的结果不是预期的内容。 清空内容我们一般会用clear()方法 import time from selenium import webdriverdriver webd…

如何使用Python操作Excel文件?看这篇博客就够了!

前言 如何使用Python操作Excel文件?看这篇博客就够了! 在工作中,我们经常需要处理和分析数据。而Excel作为一种广泛使用的数据分析工具,被很多人所熟知。但是,对于一些非技术背景的用户来说,如何操作Exce…

自学网络安全,一般人我劝你还是算了吧

学前感言: 我为什么会这样说,要一般人自学网络安全就算了,因为我不是一般人 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发 .3.有时多 google,baidu,我们往往…

自学网络安全(黑客)?一般人我劝你还是算了吧!

一、自学网络安全学习的误区和陷阱 1.不要试图以编程为基础的学习开始学习 我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多 …

IMX6ULL裸机篇之IIC协议

一. IIC实验简介 I2C 是最常用的通信接口,众多的传感器都会提供 I2C 接口来和主控相连。 比如摄像头、 加速度计、触摸屏等。 I.MX6U-ALPHA开发板 使用 I2C1 接口连接了一个距离传感器 AP3216C ,本章我们就来学习如何使用 I.MX6U 的 I2C 接口…

“开启科技之门,每日工作充满力量” —— 全国科技者工作日

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

科技创新—人工智能应用技术的出现

科技创新—人工智能应用技术的出现 人工智能(Artificial Intelligence,AI)研究目的是通过探索智慧的实质,扩展人类智能——促使智能主体会听(语音识别、机器翻译等)、会看(图像识别、文字识别等…

深入解析CPU性能火焰图生成的内部原理

在进行CPU性能优化的时候,我们经常先需要分析出来我们的应用程序中的CPU资源在哪些函数中使用的比较多,这样才能高效地优化。一个非常好的分析工具就是《性能之巅》作者 Brendan Gregg 发明的火焰图。 我们今天就来介绍下火焰图的使用方法,以…

这三款识别图片手写文字的软件超好用

在过去,我们需要通过扫描或者人工录入的方式将手写文字数字化,这样操作不仅繁琐而且容易出错。而随着人工智能技术的发展,我们现在可以通过图片识别技术将手写文字自动识别为数字形态,从而实现自动化的信息处理和提取。这项技术可…

【C语言】经典题目(二)

C站的小伙伴们,大家好呀^^! 这一篇文章是C语言之经典题目,快来跟我一起进入C语言的世界吧!💞 C语言其他刷题篇在这里哦: 【C】语言经典题目(一) 【C语言】字符串—刷题篇 【C语言】经典题目二 求…

java.time包使用指南

目录 前言一、时区与时间1. 世界标准时:UTC、GMT、UT2. 地区时:Asia/Shanghai、UTC83. 时区:ZoneId、TimeZone4. 时间偏移量:ZoneOffset5. 时区简称:CTT、PRC 二、主要时间类1. 重要时间接口:Temporal2. 时…

Uni-app学习从0到1开发一个app——(1)初步了解各种小程序开发框架

文章目录 0 引入1、小程序常用框架1.1、 mpvue1.2、 mpvue1.3、 Tina.js1.4、 WePY1.5 微信官方1.6 TouchUI WX 2、uin-app3、引用 0 引入 uin-app官网地址:https://uniapp.dcloud.net.cn/ 最近对于小程序莫名的感兴趣起来,索性就从uni-app开始吧 1、小…

spring boot使用elasticsearch分词,排序,分页,高亮简单示例

目录 1. 创建ES实体2. 创建查询实体3. 查询方法实现3.1 核心代码3.2 构建查询条件3.2.1 关键词分词 3.3 高亮处理 4.完整查询代码展示 记,写一个简单的es分词demo,es版本6.8.12 如果使用es7有些方法可能会有所改变,请参考7的文档 es安装教程:…

PMP-识别相关方的重要性

一、为什么要识别相关方 每个项目都有相关方,他们会受项目的积极或消极影响,或者能对项目施加积极或消极的影响。有些相关方影响项目工作或成果的能力有限,而有些相关方可能对项目及其期望成果有重大影响。项目经理和团队正确识别并合理引导所…

Apache的日志分割

一、日志分割的作用 我们知道当服务安装完成以后,都会在相关服务下有一个logs文件里面有着访问日志和错误日志。访问日志可以帮我们记录访问者的信息,错误日志一般在服务搭建,服务配置,启动时能够快速寻找错误原因的日志&#xf…

堆的应用(堆排序、TOP - K问题)

前言 🍎 时间复杂度: 🥝 堆排序的最坏时间复杂度为 :O(n*lg(n)) 🥝 TOP - K问题的最坏时间复杂度为:O(n*lg(k)) 🍁前面我们学习了二叉树、以及堆的结构,也用顺序表的结构成功的把堆的…

【uni-app】使用外部组件不显示报错组件未找到解决方案

文章目录 前言一、问题描述二、温馨提示总结 前言 大家好,今天和大家分享一下uni-app使用外部组件不显示报错的一个解决方案,希望能够帮助到大家。 一、问题描述 我在使用uni-app在开发项目时引入了一个外部的组件库,刚开始引入的时候还是…