STM32-点亮 LED

news2024/11/27 2:40:12

目录

1 、电路构成及原理图 

2 、编写实现代码 

3、代码讲解

4、烧录到开发板调试、验证代码 

5、检验效果


本人使用的是朗峰 STM32F103 系列开发板,此笔记基于这款开发板记录。

1 、电路构成及原理图 

首先,通过朗峰 F1 开发板 LED 部分原理图看到,一共有两颗用于程序调试的 LED(发光二极管)LED1(红色)、LED2(绿色),而且两颗发光二极管的正极分别通过了一个限流电阻 R52 和 R53 接到 3.3v 电源端。两颗 LED 的负极分别连接到了 MCU—STM32F103RCT6 的GPIO(通用输入输出端口)的 PC6 和 PB9 引脚上。 

其次,根据二极管单向导通的特性,我们知道只要让 PC6 引脚或PB9 输出低电平 LED1 或 LED2 就可以亮起来啦.

2 、编写实现代码 

3、代码讲解

无论多复杂或多简单的程序都有且只有这一个 main 函数,继续看,main 的第一行就是初始化 HAL 库函数 HAL_Init(); 也是 HAL 库提供的函数,不用自己写,拿过来用就行了,紧接着第二行就是系统时钟初始化函数 SystemClock_init(RCC_PLL_MUL9);可以右键“Go To Definition”打开看一下(需要先按 编译一次),真的不要急着能看懂代码,重点先了解写代码流程。 再下一行就是初始化 LED 函数了 Led_Init();不管是片上外设还是外部设备使用前都需要先初始化的。 接下来就进入程序循环了 while(),就是会反复循环执行的代码。

4、烧录到开发板调试、验证代码 

想真实的看到这段代码的效果,我们还需要把代码下载到开发板。

方法是:用下载器,连接到开发板的 SWD 插针上注意引脚对应关系,不要插错了。 

然后编译一次(按),编译结果显示 0 错误 0 警告就 OK 

之后再按 将代码下载到开发板。 

5、检验效果


  

欢迎大家留言,共同探讨,共同学习,共同进步

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

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

相关文章

计算机专业必看《编程之神》

前言 这是一部关于数学家艾伦图灵(Alan Turing)的人物传记电影,非常值得一看. 影片中,艾伦图灵被描绘成一个富有创造力、勇气和独立思考的人物。他的天才思维和对计算机的理解在纠缠复杂的密码解密过程中发挥了重要作用。 图灵的天才 提出图灵…

20. 【Linux教程】emacs 编辑器

前面小节介绍了如何使用 vim 编辑器和 nano 编辑器,本小节介绍 emacs 编辑器,emacs 编辑器最开始是作为控制台的编辑器,并且 emacs 编辑器仍然提供最早的命令行模式。 1. 检查 Linux 系统中是否安装 emacs 编辑器 使用如何命令检查 emacs 编…

显微测量|台阶仪二维超精密测量微观形貌

台阶仪通过扫描被测样品表面,获取高分辨率的表面形貌数据,能够揭示微观结构的特征和性能。 标题了解工作原理和性能特点 台阶仪利用扫描探针在样品表面上进行微观测量,通过探测探针和样品表面之间的相互作用力,获取表面形貌信息…

C++学习Day06之继承中的对象模型

目录 一、程序及输出1.1 程序检验对象1.2 开发人员工具查看对象模型1.2.1 查看对应工程目录文件1.2.2 查看对象模型 二、分析与总结 一、程序及输出 1.1 程序检验对象 父类中私有属性,子类访问不到,是由编译器给隐藏了,但仍然在子类对象模型…

【Visual Studio】技巧 :自动与活动文档同步

在这里插入图片描述 工具 -> 选项 -> 项目和解决方案 - 勾选上面的 我厉害不!!!

B端系统升级方案模板:针对美观性和体验性升级(总体方案)

大家好,我是大美B端工场,专注于前端开发和UI设计,有需求可以私信。本篇从全局分享如何升级B端系统,搞B端系统升级的有个整体思维,不是说美化几个图标,修改几个页面就能解决的,这个方案模板&…

数据安全之认识数据资产管理平台

文章目录 一、什么是数据资产二、什么是数据资产管理平台1、什么是数据资产管理平台2、为什么需要数据资产管理平台 三、数据资产管理平台的主要功能四、数据资产管理平台的工作原理五、数据资产管理平台的应用场景六、安全资产管理平台与数据资产管理平台的区别与关系1、安全资…

IDEA配置Maven的步骤

目录 一 下载Maven 二 下载以后解压。在这个文件夹下新建一个文件夹,命名为“maven-repository” 三 在maven文件夹下,打开conf,选择settings文件,用notepad打开,改动3个地方 四 打开IDEA,左上角选择“…

尚硅谷最新Node.js 学习笔记(四)

目录 八、express框架 8.1、express介绍 8.2、express使用 express下载 express初体验 8.3、express路由 什么是路由? 路由的使用 获取请求参数 获取路由参数 8.4、express响应设置 8.5、express中间件 什么是中间件? 中间件的作用 中间件…

网络同步—帧同步和状态同步解析

概述 同步就是要多个客户端表现效果是一致的,而且对于大多数的游戏,不仅仅要表现一致,还要客户端和服务器的数据也是一致的。所以同步是个网络游戏概念,只有网络游戏才需要同步,而单机游戏是不需要同步的。 帧同步和…

普中51单片机学习(九)

蜂鸣器 蜂鸣器简介 在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。改变单片机引脚输出波形的频率,就可以调整控制蜂鸣器音调,产…

版本控制(Git)

Fork 本课程网站的仓库 将版本历史可视化并进行探索是谁最后修改了 README.md文件?(提示:使用 git log 命令并添加合适的参数)最后一次修改_config.yml 文件中 collections: 行时的提交信息是什么?(提示&am…

互联网使用代理IP的作用

互联网使用代理IP主要有以下作用: 1. 隐私保护: - 使用代理IP,用户的原始IP地址会被代理服务器的IP地址所替代,从而隐藏用户的真实身份和地理位置信息,增加网络匿名性。 2. 安全防护: - 代理服务器可以作为…

vue-productionSourceMap作用

当其设置为false时(productionSourceMap: false) 当其设置为true时(productionSourceMap: true) 注:1.当设置为true时,打包后每个文件都有一个.map文件,其目的是为了精确定位代码错误 2.当设置为false时,可减少项目打包大小 3.正式环境禁止使用true,因为其可通过反编译.map文件…

深度学习之pytorch实现线性回归

度学习之pytorch实现线性回归 pytorch用到的函数torch.nn.Linearn()函数torch.nn.MSELoss()函数torch.optim.SGD() 代码实现结果分析 pytorch用到的函数 torch.nn.Linearn()函数 torch.nn.Linear(in_features, # 输入的神经元个数out_features, # 输出神经元个数biasTrue # 是…

Linux防火墙:SNAT和DNAT地址转换操作

目录 一、NAT 1、NAT概念 2、NAT分类 二、SNAT 1、SNAT概念 2、SNAT源地址转换过程 3、已知外网地址的SNAT操作 3.1 配置网关服务器 3.1.1 添加网卡 3.1.2 配置ens33网卡 3.1.3 配置ens36网卡 3.1.4 重启网卡并查看网卡是否生效 3.1.5 开启路由转发功能 3.1.6 配…

Springboot医院信息管理系统源码 带电子病历和LIS Saas应用+前后端分离+B/S架构

目录 系统特点 技术架构 系统功能 1、 标准数据维护 2、 收费(门诊/住院)系统 3、 药剂管理系统 4、 医生工作站系统 5、 护士工作站系统 6、电子病历系统 系统优点 云HIS系统简介 云HIS系统功能模块 门急诊挂号管理 门诊收费管理 门诊医…

嵌入式面试:瑞芯微

文章目录 一、2024 秋招1.1 IIC的速率范围 :1.2 linux驱动子系统汇总 :1.3 linux关抢占情况汇总 :1.4 操作或者读写一个文件时,从用户态到内核态再到物理介质的流程(考点:虚拟文件系统) : 一、2024 秋招 1…

Model / View结构

红色部分是可以直接使用的。 QFileSystemModel; QFileSystemModel的使用: 头文件: QFileSystemModel* model nullptr; cpp文件: model new QFileSystemModel; model->setRootPath(QDir::currentPath()); ui->listView->setModel…

LDR6020打造最具有性价比的TYPE-C台式显示器方案

对于手里有TYPE-C接口电脑设备,又觉得自带屏幕太小,需要换用外接屏幕,或者需要多屏办公的用户。肯定要首选支持Type-c连接的显示器了。为什么呢?因为Type-c连接可以战未来,而不是仅仅能满足现在的需求。 首先介绍一下…