当前位置: 首页 > news >正文

STM32入门开发操作记录(一)——新建工程

目录

  • 一、课程准备
    • 1. 课程资料
    • 2. 配件清单
    • 3. 根目录
  • 二、环境搭建
  • 三、新建工程
    • 1. 载入器件支持包
    • 2. 添加模块
    • 3. ST配置
    • 4. 外观设置
    • 5. 主函数文件

一、课程准备

1. 课程资料

  本记录操作流程参考自b站视频BV1th411z7snSTM32入门教程-2023版 细致讲解 中文字幕,课程资料包下载链接见视频简介,解压密码见资料txt文档。课程开始前请完成资料的下载、解压和整理,不要有同名目录

2. 配件清单

器件说明
STM32F103C8T6最小系统板
MB-102400孔面包板(含跳线)
ST-Link仿真器
CH340USB转TTL模块
HC-06无线蓝牙串口模块
HC-SR04超声波模块
LED3mm 红/绿/黄/蓝/白 发光二极管
有源蜂鸣器3V
OLED显示屏0.96寸
杜邦线21cm 2.54mm 公对公/母对母/公对母

  也可直接购买STM32F103ZET6开发实验板+ARM3嵌入式学习板 玄武F103 C1套件,但有少量元器件缺失,需自行补齐。

3. 根目录

  下面列出主要文件的下载目录,以便于下文对照路径进行操作。

类型名称
STM32入门教程资料Resource
IDE安装Keil5
工程文件Project


二、环境搭建

  进行以下安装操作时,若无特殊说明,一律按默认配置。

依赖项安装包目录说明
Keil uVision5Resource\Keil5 MDK\MDK524a集成开发环境(IDE)
STM32F1Resource\Keil5 MDK\支持包\Keil.STM32F1xx_DFP.2.2.0器件支持包
STLinkDriverKeil5\ARM\STLink\USBDriver\dpinst_amd6464位电脑STLink驱动
USB-TTLDriverResource\工具软件\USB转串口CH340驱动\CH341SERUSB转串口驱动

  Keil5安装和注册激活须参照STM32入门(一):Keil_5下载和安装教程进行,安装目录不建议设在C盘,路径不要有中文。

三、新建工程

1. 载入器件支持包

  以管理员身份运行Keil uVision5,新建一个项目文件,保存于创建的工程目录,并选择STM32F103C8器件支持包,然后全部OK.

请添加图片描述
请添加图片描述
请添加图片描述

2. 添加模块

  在工程目录Project下新建三个文件夹,将对应的文件复制粘贴过来,文件位置导航如下:

启动模块Start6

  • >>Resouce\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\
    startup_stm32f10x_md.s
  • >>Resouce\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\
    stm32f10x.hsystem_stm32f10x.hsystem_stm32f10x.c
  • >>Resouce\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport\
    core_cm3.hcore_cm3.c


库函数处理模块User3

  • >>Resource\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Project\
    stm32f10x_conf.hstm32f10x_it.hstm32f10x_it.c


库函数模块Library

  • >>Resource\固件库\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\
    src\inc\两个目录下的所有头文件

  在Keil uVision5添加以上三个模块路径,以Start为例:新建目录重命名为Start并添加文件,在魔术棒Options for Target中添加路径。

请添加图片描述
请添加图片描述
请添加图片描述

3. ST配置

  在魔术棒里,将驱动定义为USE_STDPERIPH_DRIVER,然后将调试器设为ST-Link Debugger,并启动载入功能Reset and Run,全部OK.
请添加图片描述请添加图片描述
请添加图片描述

4. 外观设置

  在扳手Configuration里,编码格式设为utf-8字体大小设为size: 14缩进尺寸设为Tab size: 4
请添加图片描述
请添加图片描述

5. 主函数文件

  右键选中User新建文件main.c作为主函数文件。

请添加图片描述
请添加图片描述
  测试程序如下:

#include "stm32f10x.h"                  // Device header
//末行必须为空
int main(void)
{while(1){}
}

  F7编译,查看信息,工程构建成功。
请添加图片描述

相关文章:

STM32入门开发操作记录(一)——新建工程

目录 一、课程准备1. 课程资料2. 配件清单3. 根目录 二、环境搭建三、新建工程1. 载入器件支持包2. 添加模块3. ST配置4. 外观设置5. 主函数文件 一、课程准备 1. 课程资料 本记录操作流程参考自b站视频BV1th411z7snSTM32入门教程-2023版 细致讲解 中文字幕,课程资…...

QT实现自定义带有提示信息的透明环形进度条

1. 概述 做界面开发的童鞋可能都会遇到这样的需求,就是有一些界面点击了之后比较耗时的操作,需要界面给出一个环形进度条的进度反馈信息. 如何来实现这样的需求呢,话不多说,上效果 透明进度条 2. 代码实现 waitfeedbackprogressba…...

金币程序题

昨天,小孩问了我一个python编程竞赛题,我看了一下题目,是一个数列编程的问题,我在想,小学五年级的学生能搞得懂吗?反正我家小孩是没有搞懂,不知道别人家的小孩能不能搞明白。所以我花了一点时间…...

《Windows API每日一练》9.13资源-鼠标位图和字符串

鼠标指针位图(Mouse Cursor Bitmap)是用于表示鼠标指针外观的图像。在 Windows 窗口编程中,可以使用自定义的鼠标指针位图来改变鼠标的外观,并提供更加个性化的用户体验。 ■以下是一些与鼠标指针位图相关的要点: ●…...

【保姆级教程】CenterNet的目标检测、3D检测、关键点检测使用教程

一、代码下载 仓库地址:https://github.com/xingyizhou/CenterNet?tab=readme-ov-file 二、目标检测 2.1 下载预训练权重 下载预训练权重ctdet_coco_dla_2x.pth放到models文件夹下 下载链接:https://drive.google.com/file/d/18Q3fzzAsha_3Qid6mn4jcIFPeOGUaj1d/edit …...

thinkphp:数据库复合查询-OR的使用

完整代码 $data[info] db::table(po_headers_all)->alias(ph) //设置wip_jobs_all的别名->join([vendors > ve], ph.vendor_codeve.vendor_code)->field(ph.po_num,ph.status,ph.vendor_code,ve.vendor_name,ph.po_all_amount,ph.note,ph.order_date,ph.need_dat…...

网络安全那些梗

网络安全领域的梗往往以幽默、讽刺或夸张的方式反映了该领域的某些现象、挑战或误解。以下是一些网络安全相关的梗: 关掉服务器是最有效的安全方法:这个梗源自一个笑话,讲述了一位程序员因误解妻子的话而只买了一个包子回家,随后被…...

交通气象站:保障道路安全的智慧之眼

随着社会的快速发展,交通运输日益繁忙,道路安全成为公众关注的焦点。在这个背景下,交通气象站作为保障道路安全的重要设施,正发挥着越来越重要的作用。它们不仅为交通管理部门提供及时、准确的气象信息,也为广大驾驶员…...

【分库】分库的核心原则

目录 分库的核心原则 前言 分区透明性与一致性保证 弹性伸缩性与容错性设计 数据安全与访问控制机制 分库的核心原则 前言 在设计和实施分库策略时,遵循一系列核心原则是至关重要的,以确保系统不仅能够在当前规模下高效运行,还能够随着…...

【Linux】软件管理工具 yum

文章目录 概念搜索:yum list安装:yum install卸载:yum remove 概念 在Linux下安装软件,可以下载到程序的源代码,进行编译得到可执行程序,另外这些软件还有依赖其它工具的问题,还得下载编译这些依…...

LangChain —— Prompt Templates

文章目录 一、什么是 Prompt Templates1、String PromptTemplates2、ChatPromptTemplates3、MessagesPlaceholder 留言占位符 二、如何使用 Prompt Templates1、使用几个简短示例2、在 chat model 中使用几个简短示例3、部分格式化提示模板4、一起编写提示 一、什么是 Prompt T…...

Python库 - Scrapy

Scrapy 是一个用于爬取网站数据、提取结构性数据的开源和协作框架。它最初是为网页抓取设计的,但也可以用于获取 API 提供的数据或作为通用的网络爬虫。 文章目录 主要特性主要组件使用流程1. 安装 Scrapy2. 创建 Scrapy 项目3. 定义 Item(数据&#xff…...

函数(实参以及形参)

实际参数(实参) 实际参数就是在调用函数时传递给函数的具体值。这些值可以是常量、变量、表达式或更复杂的数据结构。实参的值在函数被调用时传递给对应的形参,然后函数内部就可以使用这些值来执行相应的操作。 int main() {int a 0;int b …...

ArcGIS Pro SDK (八)地理数据库 8 拓扑

ArcGIS Pro SDK (八)地理数据库 8 拓扑 文章目录 ArcGIS Pro SDK (八)地理数据库 8 拓扑1 开放拓扑和进程定义2 获取拓扑规则3 验证拓扑4 获取拓扑错误5 标记和不标记为错误6 探索拓扑图7 找到最近的元素 环境:Visual …...

uniapp如何发送websocket请求

方法1: onLoad() {uni.connectSocket({url: ws://127.0.0.1:8000/ws/stat/realTimeStat/,success: (res) > {console.log(connect success, res);}});uni.onSocketOpen(function (res) {console.log(WebSocket连接已打开!);uni.sendSocketMessage({d…...

RabbitMQ的工作模式

RabbitMQ的工作模式 Hello World 模式 #mermaid-svg-sbc2QNYZFRQYbEib {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-sbc2QNYZFRQYbEib .error-icon{fill:#552222;}#mermaid-svg-sbc2QNYZFRQYbEib .error-text{fi…...

自建搜索引擎-基于美丽云

Meilisearch 是一个搜索引擎,主程序完全开源,除了使用官方提供的美丽云服务(收费)进行对接之外,还可以通过自建搜索引擎来实现完全独立的搜索服务。 由于成本问题,本博客采用自建的方式,本文就…...

2024辽宁省大学数学建模竞赛试题思路

A题 (1) 建立模型分析低空顺风风切变对起飞和降落的影响 模型假设 飞机被视为质点,忽略其尺寸和形状对风阻的影响。风切变仅考虑顺风方向的变化,忽略其他方向的风切变。飞机的飞行速度、高度和姿态(如迎角、俯仰角)是变化的&am…...

循环结构(一)——for语句【互三互三】

文章目录 🍁 引言 🍁 一、语句格式 🍁 二、语句执行过程 🍁 三、语句格式举例 🍁四、例题 👉【例1】 🚀示例代码: 👉【例2】 【方法1】 🚀示例代码: 【方法2】…...

【深度学习基础】MacOS PyCharm连接远程服务器

目录 一、需求描述二、建立与服务器的远程连接1. 新版Pycharm的界面有什么不同?2. 创建远程连接3. 建立本地项目与远程服务器项目之间的路径映射4.设置保存自动上传文件 三、设置解释器总结 写在前面,本人用的是Macbook Pro, M3 MAX处理器&am…...

微调Qwen2大语言模型加入领域知识

目录 试用Qwen2做推理安装LLaMA-Factory使用自有数据集微调Qwen2验证微调效果 试用Qwen2做推理 参考:https://qwen.readthedocs.io/en/latest/getting_started/quickstart.html from transformers import AutoModelForCausalLM, AutoTokenizer device "cuda…...

【Linux】内核文件系统系统调用流程摸索

内核层可以看到当前调用文件处理的进程ID 这个数据结构是非常大的: 我们打印的pid,tgid就是从这里来的,然后只需要找到pid_t的数据类型就好了。 下图这是运行的日志信息: 从上述日志,其实我也把write的系统调用加了入口的打印信…...

【HZHY-AI300G智能盒试用连载体验】文档资料

感谢电子发烧友和北京合众恒跃科技有限公司提供的的产品试用机会。 HZHY-AI300G工业级国产化智盒,采用RK3588工业级芯片组适应-40℃-85℃工业级宽温网关。 以前测试过其他厂家的RK3568产品,对瑞芯微的工具也比较了解。 在合众恒跃的网站上可以看到基本…...

Linux--深入理与解linux文件系统与日志文件分析

目录 一、文件与存储系统的 inode 与 block 1.1 硬盘存储 1.2 文件存取--block 1.3 文件存取--inode 1.4 文件名与 inode 号 ​编辑 1.5 查看 inode 号码方法 1.6 Linux 系统文件的三个主要的时间属性 1.7 硬盘分区结构 1.8 访问文件的简单了流程 1.9 inode 占用 1.…...

Postman 中的 API 安全性测试:最佳实践与技巧

在当今快速发展的数字化世界中,API(应用程序编程接口)已成为软件系统之间通信的桥梁。然而,随着API使用的增加,安全风险也随之上升。本文将详细介绍如何在 Postman 中进行 API 的安全性测试,帮助开发者和测…...

PTC可复位保险丝 vs 传统型保险丝:全面对比分析

PTC可复位保险丝,又称为自恢复保险丝、自恢复熔断器或PPTC保险丝,是一种电子保护器件。它利用材料的正温度系数效应,即电阻值随温度升高而显著增加的特性,来实现电路保护。 当电路正常工作时,PTC保险丝呈现低阻态&…...

深入了解Rokid UXR2.0 SDK内置的Unity AR Glass开发组件

本文将了解到Rokid AR开发组件 一、RKCameraRig组件1.脚本属性说明2.如何使用 二、PointableUI组件1.脚本属性说明2.如何使用 三、PointableUICurve组件1.脚本属性说明2.如何使用 四、RKInput组件1.脚本属性说明2.如何使用 五、RKHand组件1.脚本属性说明2.如何使用3.如何禁用手…...

Lottery 分布式抽奖(个人向记录总结)

1.搭建(DDDRPC)架构 DDD——微服务架构(微服务是对系统拆分的方式) (Domain-Driven Design 领域驱动设计) DDD与MVC同属微服务架构 是由Eric Evans最先提出,目的是对软件所涉及到的领域进行建…...

我的AI音乐梦:ChatGPT帮我做专辑

​🌈个人主页:前端青山 🔥系列专栏:AI篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来ChatGPT帮我做音乐专辑 嘿,朋友们! 想象一下,如果有个超级聪明的机器人能帮你写…...

新手-前端生态

文章目录 新手的前端生态一、概念的理解1、脚手架2、组件 二、基础知识1、HTML2、css3、JavaScript 三、主流框架vue3框架 四、 工具(特定框架)1、uinapp 五、组件库()1、uView如何在哪项目中导入uView 六、应用(各种应…...

顺德龙江网站建设/网络营销方案策划书

Java I/O流-总结(InputStream,OutputStream,Reader,Writer)2014-08-22一、 流的分类 按数据流动方向– 输入流:只能从中读取字节数据,而不能向其写出数据– 输出流:只能向其写入字节数据,而不能从中读取数据 按照…...

如何创建网站挣钱/百度app手机版

2019独角兽企业重金招聘Python工程师标准>>> 1、复制的完整流程 (1)slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始 master host和ip是从哪儿来的,re…...

网站整体结构/深圳网络营销推广培训

文章目录inv穆尔-彭罗斯广义逆pinv对于两个方阵A,BA,BA,B,若ABEABEABE,且EEE为单位阵,则A,BA,BA,B互逆,可记作AB−1,BA−1AB^{-1}, BA^{-1}AB−1,BA−1。 inv 在numpy和scipy中,均提供了求逆函数,分别是n…...

网站建设技术团队有多重要/重庆关键词搜索排名

第 1 页 共 13 页 六种主流编程语言( C 、 C 、 Python 、 JavaScript 、 PHP 、 Java )特性对比 时间 2014-02-24 09:17:54 CSDN 博客 原文 http://blog.csdn.net/weiganyi/article/details/19805989 这些年来我陆陆续续已经学习了六种编程语言&#xf…...

重庆奉节网站建设公司哪家好/廊坊seo

偶然看到<C#中判断空字符串的3种方法性能分析 >作者&#xff1a;清清月儿 主页&#xff1a;http://blog.csdn.net/21aspnet/ 时间&#xff1a;2007.4.28 写的一篇关于字符串为空判断方法的性能分析文章,实验结果作者已经给出,结论是使用.length0判断的效率最高…...

上海建站提供商/西安百度竞价托管

(内容包括Python语法概述&#xff0c;流程控制&#xff0c;条件表达式)1 Python语法1.1 Python的特点Python是一种完全面向对象的、解释性的、可移植的、开源的脚本编程高级语言&#xff0c;具有丰富的库&#xff0c;允许边写边执行。他完全支持继承、重载&#xff0c;强大的第…...