STM32学习笔记——Keil uVision5建项目

news/2024/9/23 19:26:12

新建文件夹——用于存放工程及工程管理

新建文件夹用于存放整个工程

打开“stm32-project”文件夹,新建一些文件夹用于工程源代码的分类

这些文件夹都是自己建的用于不同类型代码存放,文件夹个数,命名都因人而异。(后续所有文件放在“stm32-project”中也行,不嫌乱的话)

Hardware——操作外设的代码

Library——常用的一些库函数

Strat——一些启动文件

System——操作开发板系统的一些代码

User——主函数

开始新建项目

new project

保存后选择对应的开发板(之后弹出的运行环境管理可以关了)

打开“stm32-project”文件夹可以看到,红框内的为新建项目后产生的文件

添加自己新建的文件夹

      →→→→      

在Start中添加启动文件

缩写的含义——👇

在Start中继续添加文件

stm32f10x.h —— stm32的外设寄存器描述文件,用来描述stm32有哪些寄存器和对应的地址
system_stm32f10x.c 和 system_stm32f10x.h —— 用来配置时钟

在Start中继续添加文件

core_cm3.c 和 core_cm3.h 内核的配置函数和内核寄存器描述文件

在Library中添加文件

其中misc.c是内核的库函数,其余的是内核外的外设库函数。在Library中继续添加他们对应的头文件

在User中添加文件

 stm32f10x_conf.h —— 配置库函数头文件的包含关系和参数检查的函数定义

 stm32f10x_it.h 和 stm32f10x_it.c —— 存放中断函数

以上基础文件放置完毕,接下来在Keil的项目目录中添加他们

右击Start添加已存在的文件

 在Strat文件中添加对应版本的启动文件

→→→→

同理右击Library添加已存在的文件(全部)

右击User添加已存在的文件(全部) 

点击魔术棒

 

在C/C++里添加文件夹的头文件路径方便软件找到他们

 在User中添加主函数mian.c

   

              1                                  2                                       3

添加头文件  #include "stm32f10x.h"

 右击stm32f10x.h的配置文件,在下面有定义,如果使用#include "stm32f10x.h"这个头文件必须定义:USE_STDPERIPH_DRIVER

在魔术棒→→ C/C++ →→ Define中粘贴

 

以上准备工作已完成,可以进行代码编写了。

 

一些小tips:

1.本人stm32入门来自b站:【STM32入门教程-2023版 细致讲解 中文字幕】 https://www.bilibili.com/video/BV1th411z7sn/?share_source=copy_web&vd_source=2040c2730cbab8f8512cafa838d1f8c5

2.写代码时,最后一行需要加一个空行,否则kail会报一个warning

 

 3.ST-Link配置

 

 

 

 

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

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

相关文章

Jenkins - 触发器

触发方式 jenkins自带的job触发方式Generic Webhook Trigger插件 在需要外界其他系统触发Jenkins任务的场景,通常使用Generic Webhook Trigger插件来配置 Jenkins 触发器 Generic Webhook Trigger 插件允许使用 Webhook将外部系统与 Jenkins 集成。 通过配置 Webhook,在特定事…

[场景设计]短网址服务

如何设计一个短网址服务(TinyURL)? 使用场景(Scenario) 微博和Twitter都有140字数的限制,如果分享一个长网址,很容易就超出限制,发不出去。短网址服务可以把一个长网址变成短网址,方便在社交网络上传播。 需求(Needs) 很显然,要尽可能的短。长度设计为多少才合适呢? 短网…

增强 softmax 函数的稳定性

概述 oftmax函数的表达式 $ \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} $,但在计算机的运算上有一定的缺陷。这个缺陷就是溢出问题。 softmax函数的实现中要进行指数函数的运算,但是此时指数函数的值很容易变得非常大。比如,e^{10} 的值会超过20000, e^{100…

大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):2.算法涉及理论知识概要大规模MIMO(Multiple-Input Multiple-Output)通信系统因其能够显著提高无线通信系统的容量和频谱效率而受到广泛关注。在这样的系统中,基站配备了大量的天线(通常数百个),而用户…

docker部署mysql8主从

一、拉取mysql镜像docker pull mysql 二、创建容器# 主库docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql# 从库 docker run -itd -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave mysql 三、配置主库[mysqld]## 同一…

IDGenRec论文阅读笔记

IDGenRec: LLM-RecSys Alignment with Textual ID Learning论文阅读笔记 Abstract ​ 为了使 LLM 与推荐需求更好地结合,我们提出了 IDGenRec,使用人类语言标记将每个项目表示为唯一、简洁、语义丰富、平台无关的文本 ID。这是通过与基于 LLM 的推荐器一起训练文本 ID 生成器…

基于鱼群算法的散热片形状优化matlab仿真

1.课题概述使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进行优化。从而得到最佳的孔隙度…

Transformer: Attention is all you need

Transformer于2017年提出,最开始应用于NLP领域,随着Transformer的快速发展,在视觉领域中也越来越多的论文或应用用到了Transformer,这里记录一下自己学习的一些知识点。 PDF: 《Attention Is All You Need》 Code: attention-is-all-you-need-pytorch 一、前置知识 1.1 注…