单片机02_寄存器_GPIO设置__点灯

芯片概述

        C51:0口、1口、2口、3口,P00~p07、P10~P17、P20~P27、P30~P37

        STM32:A口、B口、C口、D口,PA0~PA15/PA5 == GPIOA.5

        STM32F407ZGT6有7组GPIO端口,分别是:A B C D E F G,每组均有16个GPIO端口,端口编号:0-15。

GPIO模块功能

以STM32F40x芯片为例。

输入浮空

在浮空状态下,外界给GPIO端口的电平状态是不确定的,完全由外部输入决定。(一般选择使用时硬件工程师会加上拉或者下拉电阻)

输入上拉

在没有外界输入的情况下,能够让GPIO端口有一个确定的高电平状态。

输入下拉

在没有外界输入的情况下,能够让GPIO端口有一个确定的低电平状态。

模拟功能

芯片内部ADC或者DAC专用功能

通用开漏输出

也叫断开输出(断开MOS管),可以正常输出低电平“0”,没有输出高电平“1”的能力。

如果想输出高电平,则需要配置为具有上拉功能的开漏输出(芯片内部的上拉电阻属于弱上拉,如果需要或者较强的驱动能力,则需要外接一个上拉电阻(硬件工程师设置))。开漏输出慎用,用的时候尽量是在硬件工程师给配置了上拉电阻的时候使用。

通用推挽输出

单片机给外界输出数据,推挽输出既可以输出高电平也可以输出低电平

复用功能开漏输出

复用功能指的是GPIO端口的第二功能(除了默认的输入输出功能以外),也就是片内外设(芯片以内内核以外)模块功能管脚的专用功能。

复用功能推挽指的是当GPIO端口作为第二功能时配置为开漏模式输出。

复用功能推挽输出

复用功能推挽指的是当GPIO端口作为第二功能时配置为推挽模式输出。

注:通用/默认:GPIO的输入和输出功能   单片机给外界高低电平或者外界给单片机高低电平。

       复用:通过GPIO端口做其他的功能,比如给外界串口数据或者外界将数据/波形发给单片机。

GPIO端口内部框图STM32F40x芯片

开漏:P-MOS管断开

置位/复位寄存器与输出数据寄存器的区别:

输出数据寄存器:清0

GPIOB->ODR &= ~(1<<3);  //设置PB3为低电平

GPIOB->ODR = GPIOB->ODR &(~(1<<3));

  1. 先计算1<<3的结果: 000001000b
  2. 将第一步计算出来的结果~:111111110111b
  3. 将GPIOB->ODR的默认值取出来:000000000
  4. 将第三步取出来的值与第二步计算的结果进行相与:0000000000
  5. 将第四步计算出来的值赋值给ODR寄存器

置位/复位寄存器:清0

GPIOB->BSRRH = 1<<3;

  1. 计算1<<3的值:00001000b
  2. 将第一步计算的值赋值给BSRRH即可。

输出数据寄存器:置1

GPIOB->ODR |= 1<<3;  //将PB3置一

GPIOB->ODR = GPIOB->ODR | (1<<3);

  1. 先计算1<<3的结果
  2. 将计算的结果与ODR的值进行相或
  3. 将第二步计算的结果赋值给ODR寄存器

置位/复位寄存器:置1

GPIOB->BSRRL = 1<<3;

  1. 计算1<<3的结果
  2. 赋值给BSRRL寄存器
GPIO模块相关寄存器STM32F40x
时钟使能的概述   

        为了节省功耗,STM系列单片机专门设置了相关寄存器来控制每一个片内外设模块的时钟使能(开启)或关闭(默认状态下时钟是关闭状态的),在使用任何模块之前都必须先使能对应模块的时钟,否则对对应模块的配置无效。

APBx提供时钟源。

时钟使能相关寄存器

        ①RCC_AHB1外设时钟使能寄存器

          寄存器作用:对AHB1系统总线上的片内外设模块进行时钟使能,在对应的位上写‘1’,则使能相对应的外设模块时钟。

        ②RCC_AHB2外设时钟使能寄存器

        ③RCC_AHB3外设时钟使能寄存器

        ④RCC_APB1外设时钟使能寄存器

        ⑤RCC_APB2外设时钟使能寄存器

STM32F40x系列时钟使能步骤

        1.找出所需要使能时钟的片内外设模块挂载在那一条时钟总线上,参考“英文数据手册2.2章”。

        2.找出中文参考手册第六章系统总线对应的时钟使能寄存器,并且在相应的位上写‘1’使能外设模块时钟。

GPIO端口相关寄存器STM32F40x芯片

点亮位于PB3的LED6灯,低电平点亮。

GPIO端口模式寄存器

PB3设置为输出模式。

GPIO端口输出类型寄存器

PB3设置为推挽输出

GPIO端口输出速度寄存器

PB3设置高速输出模式

GPIO端口输出数据寄存器

关闭LED6,PB3设置为高电平,ODR3位设置为1;

引脚输出高电平;

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

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

相关文章

【EI会议征稿通知】2024年软件自动化与程序分析国际学术会议(SAPA 2024)

2024年软件自动化与程序分析国际学术会议&#xff08;SAPA 2024) 2024 International Conference on Software Automation and Program Analysis 在当今科技社会中&#xff0c;软件产业呈快速发展趋势&#xff0c;软件自动化与程序分析技术在提高软件质量、降低开发成本、提升…

【风格迁移】CAST:对比学习,从图像特征而非其二阶统计量(Gram矩阵)中学习风格

CAST&#xff1a;对比学习&#xff0c;从图像特征而非其二阶统计量&#xff08;Gram矩阵&#xff09;中学习风格 提出背景5 why 分析5 so分析 CAST 框架多层风格投影器领域增强模块生成网络 效果对比 StyleGAN 提出背景 论文&#xff1a;https://arxiv.org/pdf/2205.09542.pdf…

【Java程序设计】【C00278】基于Springboot的数码论坛管理系统(有论文)

基于Springboot的数码论坛管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的数码论坛系统 本系统分为系统功能模块、管理员功能模块以及用户功能模块。 系统功能模块&#xff1a;在系统首页可以查看首页、…

测试计划、测试方案、测试策略、测试用例的区别

一 测试计划 测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、各阶段的测试任务、时间进度安排&#xff0c;谁执行任务和风险控制等&#xff0c;可以包括测试策略。 二 测试方案 测试方案是指描述需要测试的特性、测试的方…

JavaSec 之 XXE 简单了解

文章目录 XMLReaderSAXReaderSAXBuilderDocumentBuilderUnmarshaller**SAXParserFactory**XMLReaderFactoryDigester总结 XMLReader public String XMLReader(RequestBody String content) {try {XMLReader xmlReader XMLReaderFactory.createXMLReader();// 修复&#xff1a…

Tomcat信创平替之TongWEB(东方通),安装步骤

我的系统: 银河麒麟桌面系统V10(SP1) 开局先吐槽一下(当然国产也是需要大量时间与金钱的投入),感觉国产软件进入死循环:国家推动国产→国产收费→还要钱?→用国外开源→国产无发普及→靠国家推动 正题: 1.先进入东方通申请使用 2.客服会发送一个TongWEB包与license.dat给你…

出生年(PTA团体天题练习题)巧用sprintf函数

以上是新浪微博中一奇葩贴&#xff1a;“我出生于1988年&#xff0c;直到25岁才遇到4个数字都不相同的年份。”也就是说&#xff0c;直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求&#xff0c;自动填充“我出生于y年&#xff0c;直到x岁才遇到n个数字都不相同的…

Sora 对未来视频创作伦理的挑战和思考

Sora 对未来视频创作伦理的挑战和思考 随着人工智能技术的飞速发展&#xff0c;AI视频模型Sora的出现为视频创作带来了革命性的变革。然而&#xff0c;在技术进步的同时&#xff0c;也带来了一些伦理问题值得我们深思。 1. 真实性和虚假信息: Sora能够生成逼真的视频画面&…

值得推荐的5 款免费好用的数据恢复软件,学生党快收藏吧!

数据丢失是很多人都会遇到的问题&#xff0c;今天我带来5款免费好用的数据恢复软件推荐。 在日常生活中&#xff0c;我们经常因为误删除、格式化、清空回收站等原因丢失数据。这时&#xff0c;我们可以使用数据恢复软件来帮助我们找回丢失的数据。市面上的数据恢复软件琳琅满目…

maven3下载地址(含旧版本)

因为现有的3.8版本与IDEA不兼容&#xff0c;我需要下载3.6版本&#xff0c;但是官网的位置非常隐蔽&#xff0c;找了很多资料才看到。故记录一下。Index of /dist/maven/maven-3 选择需要的版本 选择binaries 选择zip文件下载就可以了

操作系统(1)——学习导论(Ⅰ)

目录 小程一言专栏链接: [link](http://t.csdnimg.cn/6grrU) 学习导论什么是操作系统主要功能强调 操作系统历史硬件层面处理器重要特点and功能 存储器磁盘I/O设备小程常用的I/O设备及其特点 小程一言 本操作系统专栏&#xff0c;是小程在学操作系统的过程中的第一步&#xff…

go interface{} 和string的转换问题

1.遇到的问题 问题来源于,我sql模版拼接遇到的问题。 首先&#xff0c;这样是没有问题的。 var qhx interface{} "qhx"s : qhx.(string)fmt.Println(s) 但是当我在这段代码里用的时候:1.类型断言 var sqlStr "select * from tx_user where username %s"…

【自然语言处理】:实验4答案,预训练语言模型实现与应用

代码和报告均为本人自己实现&#xff08;实验满分&#xff09;&#xff0c;只展示主要任务实验结果&#xff0c;如果需要详细的实验报告或者代码可以私聊博主&#xff0c;接实验技术指导1对1 实验要求布置请看http://t.csdnimg.cn/1sh7s 运行模型&#xff0c;测试模型在有 100%…

真Unity3D编辑器Editor二次开发

IMGUI Editor Label 改变颜色 分享一个很神奇的颜色 一开始这么写&#xff0c;以为不行的&#xff0c; private void OnGUI()(){GUILayout.Label("<colorred>name:</color>ffdasilufoi");//。。。。 } 结果这么写又好了&#xff0c; private GUIStyle m…

基于qt的图书管理系统----03核心界面设计

参考b站&#xff1a;视频连接 源码github&#xff1a;github 目录 1 添加软件图标2 打包程序3 三个管理界面设计4 代码编写4.1 加载界面4.2 点击按钮切换界面4.3 组团添加样式4.4 搭建表头4.5 表格相关操作 从别人那里下载的项目会有这个文件&#xff0c;里边是别人配置的路径…

Java核心-核心类与API(2)

话接上回&#xff0c;继续核心类与API的学习&#xff0c;这次介绍StringBuffer/StringBuilder/StringJoiner类。StringBuffer和StringBuilder是我们学习的重点&#xff0c;建议对比学习&#xff0c;做好区分。 一、StringBuffer类 1、概述 1&#xff09;问题 由于 String 类…

RSA加密原理

2024.2.23 密钥对的生成过程 1、随机找两个质数 P 和 Q &#xff0c;P 与 Q 越大&#xff0c;越安全 本例取 P 67 &#xff0c;Q 71 计算他们的乘积 N P * Q 4757 转化为二进为 1001010010101&#xff0c;该加密算法即为 13 位&#xff0c;实际使用中的算法是往往是 …

前瞻性规划:解决数据中心机房通用性问题

随着技术的快速发展&#xff0c;数据中心机房的建设面临着不断变化的挑战。在机房规划和设计阶段&#xff0c;缺乏对用户需求的深入分析和对未来发展趋势的考量&#xff0c;往往会导致机房通用性不足&#xff0c;从而影响其长期使用效率和稳定性。本文将探讨数据中心机房建设中…

Ansible概述和常用模块

目录 一、ansible概述 &#xff08;一&#xff09;基础知识 &#xff08;二&#xff09;特性 二、部署ansible &#xff08;一&#xff09;管理端安装 &#xff08;二&#xff09;ansible 目录结构 &#xff08;三&#xff09;配置主机清单 &#xff08;四&#xff09;…

Leetcode2583. 二叉树中的第 K 大层和

Every day a Leetcode 题目来源&#xff1a;2583. 二叉树中的第 K 大层和 解法1&#xff1a;层序遍历 排序 先使用层序遍历计算出树的每一层的节点值的和&#xff0c;保存在数组 levelSum 中。然后将数组进行排序&#xff0c;返回第 k 大的值。需要考虑数组长度小于 k 的边…