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编译,查看信息,工程构建成功。
请添加图片描述

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

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

相关文章

柯桥韩语培训韩语学习力职场口语韩语中的职场黑话你知道几个?

生活中比较常用的,与职场生活有关的新造词有상사병, 직장살이, 무두절(無頭節)等。一起来看下他们的意思吧... 상사병 상사병是指因为上司多变不定的指示而火大的意思。 직장살이 직장살이用来比喻职场生活也需要看上司的脸色,就像在婆家看婆婆脸色一样…

gorm只查询某一些字段字段的方法Select, 和只查询某一字段方法 Pluck

gorm中默认是查询所有字段的, 如果我们只需要获取某些字段的值,可以通过使用 Select方法来指定要查询的字段来实现, 也可以通过定义一个需要字段的结构体来实现; 而如果我们只需要查询某一个字段的值就可以使用 Pluck方法来获取(这…

【刷题汇总 -- 删除公共字符、两个链表的第一个公共结点、mari和shiny】

C日常刷题积累 今日刷题汇总 - day0121、删除公共字符1.1、题目1.2、思路1.3、程序实现 -- 蛮力法1.4、程序实现 -- 哈希 2、两个链表的第一个公共结点2.1、题目2.2、思路2.3、程序实现 -- 对齐比对法2.4、程序实现 -- 公共端点路程法 3、mari和shiny3.1、题目3.2、思路3.3、程…

[python]基于yolov10+gradio目标检测演示系统设计

【设计介绍】 YOLOv10结合Gradio实现目标检测系统设计是一个结合了最新目标检测技术和快速部署框架的项目。下面将详细介绍这一系统的设计和实现过程。 一、YOLOv10介绍 YOLOv10是YOLO(You Only Look Once)系列的最新版本,由清华大学的研究…

vienna整流器的矢量分析

Vienna整流器使用六个二极管和六个IGBT(或MOSFET)组成,提供三个电平:正极电平(P)、中性点电平(O)和负极电平(N)。通过对功率管的控制,Vienna整流器…

Telegram Bot、小程序开发(一)基础入门

文章目录 一、Telegram Bot是什么?二、Telegram Bot应用场景三、机器人是如何工作的?架构getUpdates 和 webhookswebhooks要求自签名证书 四、如何创建和使用Telegram Bot?整体步骤和流程Bot 的申请过程将机器人添加到 Telegram 群组 一、Tel…

昇思25天打卡营第25天|基于MoblieNetv2的垃圾分类

一、简介: 本次实验主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入,对图像中的垃圾物体进行检测,并且将检测结果图片保存到文件中。 实验目的: 了解熟悉垃圾分类应用代码的编写(Python语言&#x…

卷积神经网络——LeNet——FashionMNIST

目录 一、文件结构二、model.py三、model_train.py四、model_test.py 一、文件结构 二、model.py import torch from torch import nn from torchsummary import summaryclass LeNet(nn.Module):def __init__(self):super(LeNet,self).__init__()self.c1 nn.Conv2d(in_channe…

Autosar Dcm配置-0x28服务ComControl-基于ETAS软件

文章目录 前言DcmDcmDsdDcmDspBswMBswMModeRequestPortBswMModeConditionBswMLogicalExpressionBswMActionBswMActionListBswMRule总结前言 0x28服务主要用来控制非诊断报文的通讯,一般在刷写预编程过程中,用来禁止APP的通信报文,可以减少总线负载率,提高刷写成功率。本文…

[C++] STL :stackqueue详解 及 模拟实现

标题:[C] STL :stack&&queue详解 水墨不写bug 目录 (一)stack简介 (二)queue简介 (三)容器适配器 (四)stack和queue的模拟实现 /*** …

数据结构(初阶1.复杂度)

文章目录 一、复杂度概念 二、时间复杂度 2.1 大O的渐进表示法 2.2 时间复杂度计算示例 2.2.1. // 计算Func2的时间复杂度? 2.2.2.// 计算Func3的时间复杂度? 2.2.3.// 计算Func4的时间复杂度? 2.2.4.// 计算strchr的时间复杂度? …

构造者模式的实现

引言——构造复杂对象的艺术 软件工程中,构造复杂对象的艺术被巧妙地封装在构造者模式(Builder Pattern)中。这种设计模式不仅提供了一种清晰且灵活的方式来构建复杂对象,还使得代码更具可读性和可维护性。构造者模式的核心思想是…

Unity最新第三方开源插件《Stateful Component》管理中大型项目MonoBehaviour各种序列化字段 ,的高级解决方案

上文提到了UIState, ObjectRefactor等,还提到了远古的NGUI, KBEngine-UI等 这个算是比较新的解决方法吧,但是抽象出来,问题还是这些个问题 所以你就说做游戏是不是先要解决这些问题? 而不是高大上的UiImage,DoozyUI等 Mono管理引用基本用法 ① 添加Stateful Component …

安全测试理论

安全测试理论 什么是安全测试? 安全测试:发现系统安全隐患的过程安全测试与传统测试区别 传统测试:发现bug为目的 安全测试:发现系统安全隐患什么是渗透测试 渗透测试:已成功入侵系统为目标的的攻击过程渗透测试与安全…

“好物”推荐+Xshell连接实例+使用Conda创建独立的Python环境

目录 主题:好易智算平台推荐RTX 4090DGPU实例租用演示安装配置torch1.9.1cuda11.1.1环境引言:算力的新时代平台介绍:技术与信任的结晶使用案例:实际使用展示创建实例开始使用连接实例(下文演示使用Xshell连接&#xff…

昇思25天学习打卡营第二十天|基于MobileNetv2的垃圾分类

打卡营第二十天,今天学习的内容是MobileNet垃圾分类,记录一下学习内容: 学习内容 本文档主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入,对图像中的垃圾物体进行检测,并且将检测结果图片保存到文件中…

【ARM】CCI集成指导整理

目录 1.CCI集成流程 2.CCI功能集成指导 2.1CCI结构框图解释 Request concentrator Transaction tracker Read-data Network Write-data Network B-response Network 2.2 接口注意项 记录一下CCI500的ACE slave interface不支持的功能: 对于ACE-Lite slav…

基于信号处理的PPG信号滤波降噪方法(MATLAB)

光电容积脉搏波PPG信号结合相关算法可以用于人体生理参数检测,如血压、血氧饱和度等,但采集过程中极易受到噪声干扰,对于血压、血氧饱和度测量的准确性造成影响。随着当今社会医疗保健技术的发展,可穿戴监测设备对于PPG信号的质量…

简单的SQL字符型注入

目录 注入类型 判断字段数 确定回显点 查找数据库名 查找数据库表名 查询字段名 获取想要的数据 以sqli-labs靶场上的简单SQL注入为例 注入类型 判断是数字类型还是字符类型 常见的闭合方式 ?id1、?id1"、?id1)、?id1")等,大多都是单引号…

【ASTGCN】模型调试学习笔记--数据生成详解(超详细)

利用滑动窗口生成时间序列 原理图示: 以PEMS04数据集为例。 该数据集维度为:(16992,307,3),16992表示时间序列的长度,307为探测器个数,即图的顶点个数,3为特征数,即流量,速度、平…