前言

大家好,这里是 Hello_Embed。嵌入式开发的 “Hello World” 是点灯 —— 通过控制单片机引脚的高低电平,让 LED 亮灭。要实现这个功能,前期准备必不可少:从软件安装到硬件原理理解,每一步都很关键。本文就来详细说说点灯前的准备工作,为后续实战打下基础。

一、准备工作:软件与资料

首先需要安装必要的开发工具,具体包括:

  • Keil5 ARM:用于编写和编译 STM32 程序的 IDE;
  • STM32CubeMX:图形化配置工具,可快速生成初始化代码;
  • ST-Link 驱动:用于将程序通过 ST-Link 下载到开发板。
    相关安装教程和资料,在 B 站的韦东山江协科技的视频中都有详细讲解。笔者使用的硬件是江协科技视频配套的开发板,虽然与韦东山 “HAL 快速入门与项目实战” 课程中使用的瑞士军刀开发板不同,但核心芯片(STM32F103C8T6)是一致的,不影响学习。
二、原理图:看懂 LED 与引脚的连接

要控制 LED,首先得通过原理图找到它与单片机引脚的连接关系。

完整原理图与 LED 部分解析

附开发板完整原理图如下:
请添加图片描述
我们重点看 LED 的连接:
请添加图片描述
从局部原理图可知:

  • LED 的左端接高电平(VCC),右端串联限流电阻后,标注为 “PC13”;
  • “PC13” 表示该端连接到 STM32 芯片的PC13 引脚(P 代表端口,C 是端口号,13 是引脚号)。
LED 亮灭的原理

根据连接关系,LED 的亮灭由 PC13 引脚的电平决定:

  • 当 PC13 输出高电平(3.3V) 时,LED 两端电压差为 0(VCC 与 PC13 都是高电平),LED 不亮;
  • 当 PC13 输出低电平(0V) 时,LED 两端产生电压差(VCC 到 0V),电流流过 LED,LED 点亮。
三、芯片引脚与命名:认识 STM32F103C8T6

要控制引脚,得先了解芯片的引脚分布和命名规则。

引脚与核心功能

STM32F103C8T6 芯片有 48 个引脚,引脚名如 “PB1、PB2” 等:
请添加图片描述
其中:

  • “P” 表示通用引脚,“B” 是端口组(类似 “端口 C”“端口 A”),“1”“2” 是组内引脚编号;
  • 不同引脚有不同功能,可通过芯片手册查询(如 “VDDA” 接高电平,“VSSA” 接地。
    请添加图片描述
    这款芯片有48个引脚,有了引脚编号与引脚名我们就能根据芯片手册查找其具体作用。
型号命名规则(C8T6)
  • C:表示 48 引脚(其他如 T-36 引脚、R-64 引脚、V-100 引脚);
  • 8:表示 Flash 存储空间为 64KB(B 代表 128KB);
  • T:表示封装类型为 LQFP;
  • 6:表示工作温度范围为 - 40~85℃。
四、单片机工作机理:控制引脚的底层逻辑

单片机要控制引脚(如 PC13),需要经过几个关键步骤,这与它的内部结构有关。

单片机的核心组成

STM32 集成了 CPU、RAM、Flash(存储程序)、GPIO(通用输入输出)、USB 控制器等模块,其中 GPIO 是控制引脚的核心。

控制引脚的步骤(以点灯为例)
  1. 使能 GPIO 模块:单片机默认关闭未使用的模块以节能,需先通过寄存器使能 GPIO 模块(如端口 C 的时钟);
  2. 引脚功能选择(多路选择):STM32 引脚可复用(如既接 GPIO,也可接 IIC、USB 等),需配置为 GPIO 功能;
  3. 配置 GPIO 方向:设置为输出模式(因为要控制 LED 亮灭,需要输出高低电平);
  4. 输出电平:通过寄存器设置 PC13 为低电平(点亮 LED)或高电平(熄灭 LED)。
/O 口电路图(辅助理解)

STM32 的 I/O 口内部电路体现了上述步骤:
请添加图片描述

  • 引脚信号可作为输入(连接模拟输入、TTL 模块等)或输出(GPIO 输出、其他功能输出);
  • 配置寄存器相当于控制电路中的开关,决定引脚的功能和方向。
结尾

本文梳理了点灯前的准备工作:安装必要软件(参考韦东山、江协科技的资料)、看懂 LED 与 PC13 引脚的连接、了解芯片命名和引脚功能,以及控制引脚的底层步骤。这些知识是后续编写代码的基础。
下一篇笔记,Hello_Embed 将带大家用 HAL 库实际编写点灯程序,记得提前安装好软件和驱动哦~

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

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

相关文章

Python网络编程技术

一、网络编程基础概念 1.1 什么是网络编程? 定义:程序通过网络与其他程序进行通信的技术。核心目标:实现数据在不同主机或进程间的传输与交互。应用场景:Web服务、API调用、实时通信、分布式系统等。 1.2 网络通信模型 OSI七层…

基于PHP的快递管理系统的设计与实现

管理员:登录:管理员可以通过用户名和密码登录系统,进入管理员后台管理界面。个人中心:管理员可以查看和编辑个人信息,如姓名、联系方式等。用户管理:管理员可以管理系统中的用户信息,包括添加新…

WPF的C1FlexGrid的单元格回车换行输入

重写C1FlexGrid的按键事件PreviewKeyDown"flex_PreviewKeyUp" 定义按键方法private void flex_PreviewKeyUp(object sender, KeyEventArgs e){if (e.Key Key.Enter){// 获取当前编辑的单元格var cell CfgReviewItem.Selection;if (cell.Column > 0 && …

简单部署普罗米修斯(Promethus)与Grafana配置

环境信息:系统版本ubuntu2404k8s版本v1.22.2promethus节点IP192.168.31.210Grafana节点IP192.168.31.210node1节点IP192.168.31.214node2节点IP192.168.31.215部署Promethus(https://prometheus.io/download/) wget https://ghfast.top/https…

Redis 编译错误:缺少静态库文件,如何解决?

目录 一、问题背景 二、问题分析 三、解决方案:手动编译缺失依赖 四、重新编译 Redis 主程序 五、小结与补充建议 一、问题背景 在从源代码编译 Redis(如 8.0.3 版本)时,很多开发者可能会遇到如下错误信息: /us…

vscode+latex本地英文期刊环境配置

1、首先进行vscode的配置安装,这个网上很多教程直接安装就可以,我建议安装vscode就行(https://code.visualstudio.com/Download),vs studio稍微有点复杂而且有点大没必要,单写论文和简单的代码编译&#xf…

8.6 CSS3rem布局

rem布局 rem (font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起em单位,em(font size of the element)是指相对于父元素的字体大小的单位。它们之…

第十五章、非合作关系设定下的多智能体强化学习

0 前言 根据上一章的内容,已知完全合作关系下的多智能体利益一致有相同的目标,而非合作关系下实际上智能体的奖励和回报都是不一样的,它们都在努力让自己的利益最大化而并不考虑整体利益。 1 非合作关系设定下的策略学习要注意的点&#xff1…

分布式微服务--GateWay(过滤器及使用Gateway注意点)

前言、Spring Cloud Gateway 与 Web 依赖冲突 <!-- 下面两个依赖不能同时使用 --><!-- Gateway 组件 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><ve…

latex in overleaf快速通关论文排版

文章目录 0 有效连接汇总 1 简介 1.1 latex是什么 1.2 overleaf是什么? 2 快速上手 步骤1 注册 步骤2 使用 (1) 找模板 (2) 整体论文的overleaf结构 (3) 编辑内容 打开可视化编辑 实时编译 编辑 (4) 导出 3 常规操作 3.1 公式 3.2 表格 3.3 图片 3.4 引用 3.5 代码块 3.6 设置…

OO SALV的栏位功能

SALV的栏位功能主要是通过CL_SALV_COLUMN_TABLE和CL_SALV_COLUMNS_TABLE这两个类的实现的。 SALV的栏位属性的详细功能包括异常状态图标、图标、符号、复选框、按钮、热点、超链接、单元格类型、单元格颜色、某一栏位颜色、某一行颜色&#xff0c;栏位隐藏等。关于颜色等样式属…

第2章:建模篇——第1节:点线面的选择与控制

目录 1.模式的切换 &#xff08;1&#xff09;编辑模式的切换 &#xff08;2&#xff09;点线面的切换 2.点线面的选择 &#xff08;1&#xff09;选择的设置 &#xff08;2&#xff09;循环选择 3.点线面的控制 4.总结 1.模式的切换 &#xff08;1&#xff09;编辑模…

深入解析嵌套事务:原理与应用

嵌套事务是指在事务执行过程中启动另一个事务形成的层级调用结构&#xff0c;主要用于处理跨服务或复杂业务场景的事务一致性控制。其核心是通过事务传播机制管理多个操作的原子性&#xff0c;具体原理和应用如下&#xff1a;一、核心概念与工作原理层级结构 嵌套事务由顶层事务…

[激光原理与应用-168]:测量仪器 - 对光学指标进行测量的仪器

一、基础光学参数测量仪器 - 频率/波长/功率光学显微镜用途&#xff1a;观察微小物体的显微图像&#xff0c;用于材料科学、生物学等领域。特点&#xff1a;高放大倍数和分辨率&#xff0c;可清晰显示微观结构。光谱分析仪用途&#xff1a;测量发光体的辐射光谱&#xff0c;分析…

MPC-in-the-Head 转换入门指南

1. 引言 本文将探讨构建零知识证明&#xff08;ZKP&#xff09;的一种非常有趣的方法&#xff1a; MPC-in-the-Head Transformation&#xff08;转换&#xff09;。 该方法最早由 2007 年的论文 Zero-knowledge from secure multiparty computation 提出&#xff0c;通常被称…

SpringBoot的优缺点

题目详细答案优点快速开发&#xff1a;Spring Boot 通过自动配置和大量的开箱即用功能&#xff0c;使得开发者可以快速启动和运行一个应用程序&#xff0c;无需进行繁琐的配置工作。简化配置&#xff1a;Spring Boot 提供了自动配置和 "starter" 依赖&#xff0c;简化…

[激光原理与应用-171]:测量仪器 - 能量型 - 激光能量计(单脉冲能量测量)

一、工作原理激光能量计通过光电效应或光热效应将激光脉冲能量转换为可测量的物理信号&#xff0c;核心原理可分为两类&#xff1a;光电型原理光电效应&#xff1a;激光照射光电材料&#xff08;如硅、硒化锌&#xff09;时&#xff0c;光子激发电子产生光电流或光电压。通过测…

四、应急响应

一、linux入侵排查 思路: 1、查看帐号 查看/etc/passwd文件中使用 /bin/bash 作为默认 shell 的用户。 查询特权用户特权用户(uid 为0) 查询可以远程登录的帐号信息 除root帐号外&#xff0c;其他帐号是否存在sudo权限。 禁用或删除多余及可疑的帐号 用find命令查看拥有…

类和对象(中):类的默认成员函数、构造函数、析构函数

&#x1f525;个人主页&#xff1a;胡萝卜3.0 &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》《数据结构》 《C干货分享》 ⭐️人生格言&#xff1a;不试试怎么知道自己行不行 目录 一、类的默认成员函数 二、构造函数 三…

如何优雅地刷力扣 LeetCode - Easy

Source 力扣LeetCode题库 App > LeetCode > 题库 > 题解 Notes 仔细审题&#xff0c;明确输入输出&#xff0c;通过测试用例。先特殊&#xff0c;后寻常。逆向思维。 在条件语句中用!代替&#xff0c;提前终止循环&#xff0c;减少嵌套层级&#xff08;else&#…