快速掌握STM32工程创建

news2024/11/25 10:34:56

STM32 工程创建-- 使用Keil uVision5 软件
晓理紫

1 准备库函数库

STM32F10x_StdPeriph_Lib_V3.5.0
VX 搜索“晓丽紫”关注回复STM32F10x即可下载

2、创建一个目录用来存放工程

STM32Study

STM32Study/study1 存放本次工程目录

3、打开Keil uVision5 创建工程

在这里插入图片描述

4、选择型号(根据板子型号选择)

在这里插入图片描述

5、在工程中添加必要文件

5.1 、启动文件

启动文件位于库函数
STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

在工程文件目录中创建文件目录Start把启动文件中的文件考到工程文件中

在这里插入图片描述

5.2 拷外设寄存器描述文件和时钟文件

位于STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

也拷入到Start中

在这里插入图片描述

5.3 拷贝内存寄存器文件

位于 STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

在这里插入图片描述

5.4 把必要文件加载到工程中

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6、添加头文件路径

在这里插入图片描述

在这里插入图片描述

7、测试工程可用性

7.1 在工程中创建User存储main文件

创建组并改名为User

在这里插入图片描述

7.2 添加main文件

在这里插入图片描述

在这里插入图片描述

8、编写测试代码

#include "stm32f10x.h"                  // Device header

int main(void)
{
	while(1)
	{
	}
}

9、错误处理

9.1 错误1

Build target 'Target 1'
Start/core_cm3.c(445): error: non-ASM statement in naked function is not supported
  uint32_t result=0;

原因: 使用的编译版本太新

在这里插入图片描述

9.2 错误2

.\Objects\study2_1.sct(7): error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.

原因:启动文件都加载进来了

在这里插入图片描述

当现实如图时工程可以使用了

在这里插入图片描述

10 debug,烧录调试

10.1 选择下降方式并设置下载复位执行

在这里插入图片描述
在这里插入图片描述

11、 使用库函数进行编程

11.1 拷贝库函数

创建Library目录并把\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver中src以及inc中的文件拷入

11.2 像上面一样添加Library组

11.3 添加库函数头文件包含关系的文件以及中断函数

位于 STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template 复制到User文件目录中

在这里插入图片描述

11.4 向上面一样加入头文件

11.5 添加宏定义

在这里插入图片描述

在这里插入图片描述

12、编译,下载到板子上运行

在这里插入图片描述

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

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

相关文章

租服务器训练深度学习模型

一、选择租哪个 推荐用AutoDL(便宜、功能强大、gug少、有时时客服解决问题) AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL 二、注册、登录 学生可以认证,享受会员价 服务器需要登录后先充值,先充个10元,接下来试试看。每次都是开机…

Web framework-Gin(二)

一、Gin 1、Ajax AJAX 即“Asynchronous Javascript And XML”(异步 JavaScript和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服…

AppleID切换验证手机

第一步:登录个人信息页面 https://appleid.apple.com/account/manage/section/security 第二步:选择账户安全 第三步:验证新手机号即可

供应链 | 顶会CIKM论文精读:面向大规模三维装箱问题的数据驱动树形搜索算法

论文解读:丁建辉,李明哲,赵艳蓉,孙楚天 编者按 本次解读的文章发表于CCF-B类会议30th ACM International Conference on Information and Knowledge Management。摘要总结如下: 3维装箱问题(3D-BPP&#…

2023第二届陇剑杯网络安全大赛 预选赛Writeup

题目附件 链接:https://pan.baidu.com/s/1J20VusdMjit4coWAi5lnnQ 提取码:6emq 文章目录 HWhard_web_1hard_web_2hard_web_3 SSsevrer save_1sevrer save_2sevrer save_3sevrer save_4sevrer save_5sevrer save_6sevrer save_7sevrer save_8 WSWireshar…

46、TCP的“三次握手”

在上一节中,TCP首部常用的几个选项,有些选项的参数就是在通信双方在建立TCP连接的时候进行确定和协商的。所以在学习过TCP报文首部之后,下面我们开始学习TCP的连接建立。 TCP的一个特点是提供可靠的传输机制,还有一个特点就是TCP…

字符型注入([SWPUCTF 2021 新生赛]easy_sql)

拿到题目,查看源码,可知是要输入参数wllm。 输入参数/?wllm1,得到会显 继续输入参数/?wllm1,报错,确定为字符型漏洞 1.查看字段列表,发现在字段4报错,确定为3列 ?wllm-1 order by 3-- ?wl…

基于JavaScript粒子流动效果

这是一个HTML文件,主要包含了一些CSS样式和JavaScript代码,用于创建一个动画效果。 在CSS部分,定义了一些基本的样式,包括页面的背景颜色、位置、大小等。特别的,定义了两种球形元素(.ball_A 和 .ball_B&am…

静态路由配置实验:构建多路由器网络拓扑实现不同业务网段互通

文章目录 一、实验背景与目的二、实验拓扑三、实验需求四、实验解法1. 配置 IP 地址2. 按照需求配置静态路由,实现连接 PC 的业务网段互通 摘要: 本实验旨在通过配置网络设备的IP地址和静态路由,实现不同业务网段之间的互通。通过构建一组具有…

nginx-基于range做断点续传

nginx默认开启了range断点续传,只要再请求时载请求头上添加header,range,nginx就可以根据range范围返回相应的字节。

zabbix配置钉钉告警

钉钉告警python脚本 cat python20 #!/usr/bin/python3 #coding:utf-8 import requests,json,sys,os,datetime # 机器人的Webhook地址 webhook"钉钉" usersys.argv[1] textsys.argv[3] data{"msgtype": "text","text": {"conten…

Leetcode 2431.最小偶倍数

给你一个正整数 n ,返回 2 和 n 的最小公倍数(正整数)。 示例 1: 输入:n 5 输出:10 解释:5 和 2 的最小公倍数是 10 。示例 2: 输入:n 6 输出:6 解释&#…

docker 笔记10:Docker轻量级可视化工具Portainer

1. 是什么 Portainer 是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。 2.安装 https://docs.portainer.io/v/ce-2.9/start/install/server/docker/linux 步骤 docker命令安装 docker run -d …

【postgresql 基础入门】数据库服务的管理

数据库服务管理 ​专栏内容: postgresql内核源码分析手写数据库toadb并发编程 ​开源贡献: toadb开源库 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤&#xff…

第一章:绪论

1.1 系统架构概述 架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系以及指导它的设计和发展的原则。 系统是组织起来完成某一特定功能火一组功能的组件集。系统这个术语包括了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及…

三层交换实验:实现不同VLAN间的互通与路由配置

文章目录 一、实验背景与目的二、实验拓扑三、实验需求四、实验解法1. PC 配置 IP 地址2. PC2 属于 Vlan10,PC3 属于 Vlan20,在三层交换机上配置 Vlanif 三层接口实现 Vlan10 和 Vlan20 三层互通3. 测试在 PC3 上 Ping PC4 ,可以 Ping 通 PC4…

吴恩达《面向开发者的提示词工程》

Ref: 【中英字幕 | P01 Introduction】2023吴恩达新课《面向开发者的提示词工程》_哔哩哔哩_bilibili 对应的笔记 ChatGPT Prompt - 知乎 本课程主要介绍指令微调LLM的最佳实践 在大型语言模型或LLM的开发中,大体上有两种类型的LLM,我将其…

kotlin协程广播管道BroadcastChannel,订阅管道openSubscription

kotlin协程广播管道BroadcastChannel&#xff0c;订阅管道openSubscription import kotlinx.coroutines.* import kotlinx.coroutines.channels.*fun main(args: Array<String>) {//广播消息//也可以把普通Channel转换成广播Channel//val channel Channel<Int>()/…

企业场景篇

企业场景篇 设计模式 简单工厂模式 工厂&#xff08;factory&#xff09;处理创建对象的细节&#xff0c;一旦有了SimpleCoffeeFactory&#xff0c;CoffeeStore类中的orderCoffee()就变成此对象的客户&#xff0c;后期如果需要Coffee对象直接从工厂中获取即可。这样也就解除了…

【javaweb】学习日记Day9 - Mybatis 基础操作

目录 一、删除 &#xff08;1&#xff09;在mapper接口执行sql删除语句 ① 注解后sql语句没有提示怎么办&#xff1f; &#xff08;2&#xff09;测试层 &#xff08;3&#xff09;开启mybatis日志 &#xff08;4&#xff09;预编译SQL 二、新增 &#xff08;1&#…