首页 > 其他分享 >GPIO寄存器及工作模式/F4

GPIO寄存器及工作模式/F4

时间:2023-08-16 18:33:33浏览次数:38  
标签:10 00 01 F4 output GPIOx 寄存器 GPIO

GPIO寄存器(general-purpose I/O port)(registers)

GPIO port mode register GPIOx_MODER 端口模式 MODERy[1:0]

00:input //输入( 默认)

01:general purpose output mode //通用输出

10:alternate function mode // 复用

11:analog mode //模拟

GPIO port output type register  GPIOx_OTYPER 输出类型 OTy

0:output push-pull //推挽 输出(默认)

1:output open-drain//开漏输出

GPIO port output speed register GPIOx_OSPEEDR 输出速度 OSPEEDRy[1:0]

00 low

01 medium

10 fast

11 high

GPIO port pull-up/pull-down register GPIOx_PUPDR 上下拉 PUPDy[1:0]

00 no pull-up pull-down

01 pull-up

10 pull-down

11 Rrserved

GPIO port input data register GPIOx_IDR 输入数据寄存 IDRy read-only
GPIO port output data register GPIOx_ODR 输出数据寄存 ODRy  
GPIO port bit set/reset register GPIOx_BSRR 置位/复位 ODR

BRy

BSy

BRy = 0  //no action on ODR

BRy = 1 //reset ODR

BSy = 0 //no action on ODR

BSy = 1 //set ODR

BS 优先 BR

GPIO port configuration lock register GPIOx_LCKR 端口配置锁定    
GPIO alternate function low register GPIOx_AFRL 复用功能低位

PIN 0~7

AFRLy [3:0]

0000: AF0

~

1111:AF15

GPIO alternate function high register GPIOx_AFRH 复用功能高位

PIN 8~15

AFRHy [3:0]

0000: AF0

~

1111:AF15

GPIOA_MODER 初始值 0xA800 0000

GPIOB_MODER 初始值 0x0000 0280

GPIOA_OSPEEDR 初始值 0x0C00 0000

GPIOB_OSPEEDR 初始值 0x0000 00C0

GPIOA_PUPDR 0x6400 0000

GPIOB_PUPDR 0x0000 0100

 GPIO工作模式设置

GPIOx_MODER/端口模式/MODERy[1:0] GPIOx_OSPEEDR/输出速度OSPEEDRy[1:0] GPIOx_OTYPER/输出类型/OTy GPIOx_PUPDR/上下拉/PUPDy[1:0] I/O configuration
工作模式
 
00  /Input (reset state)/输入模式 x x 00 No pull up down Floating Input 浮空输入
01 Pull up PU Input 上拉输入
10 Pull down PD Input 下拉输入
 
01 /General purpose output mode/通用输出

00 low

01 medium

10 fast

11 high

0 output push-pull/推挽 00 PP 推挽输出
01 PP PU 推挽上拉输出
10 PP PD 推挽下拉输出
1 output open-drain/开漏 00 OD 开漏输出
01 OD PU 开漏上拉
10 OD PD 开漏下拉
 
10 /Alternate function mode/复用输出

00 low

01 medium

10 fast

11 high

0 output push-pull 00 AF PP 复用推挽
01 AF PP PU 复用推挽上拉
10 AF PP PD 复用推挽下拉
1 output open-drain 00 AF OD 复用开漏
01 AF OD PU 复用开漏上拉
10 AF OD PD 复用开漏下拉
 

11 /Analog mode/模拟

x x 00 Analog IO 模拟输入输出

标签:10,00,01,F4,output,GPIOx,寄存器,GPIO
From: https://www.cnblogs.com/Yannnnnn/p/17632821.html

相关文章

  • C# Modbus寄存器类
    注意:字节数据转换的时候用到了BitConverter扩展类,请参考我之前的文章 链接:https://www.cnblogs.com/smartnn/p/17633877.htmlusingModbus.Data;usingModbus.Device;usingModbus.Message;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSys......
  • CF479E Riding in a Lift
    题目大意一栋楼有\(n\)层,初始位置在\(a\)层,你可以移动到的\(y\)层满足\(\left|x-y\right|<\left|x-b\right|\)。不可以走到\(b\)层或留在原地,问一共走\(k\)次,有多少种走法。思路考虑简单的DP。记\(dp_{i,j}\)表示走到第\(i\)层,走了\(j\)次的方案数,\(l,r\)......
  • CF446B DZY Loves Modification
    题目大意给出一个\(n\timesm\)的矩阵,并进行\(k\)次操作,每次操作将矩阵的一行或一列的所有元素的值减\(p\),得到的分数为这次修改之前这一列或一行的元素和,求分数最大值。思路先说一下假贪心为什么是错的。有一个很显然的贪心思路,分别用两个堆分别维护行与列的和,每次在两......
  • RCC & GPIO库函数&传感器输入
    RCC: ResetandClockControl,即复位和时钟控制。  一般在.h文件的末尾都是一些函数声明,RCC常用的三个函数(外设时钟控制,没有时钟外设不工作):voidRCC_AHBPeriphClockCmd(uint32_tRCC_AHBPeriph,FunctionalStateNewState);voidRCC_APB2PeriphClockCmd(uint32_tRCC_AP......
  • CF452C 题解
    洛谷链接&CF链接题目简述有\(m\timesn\)张牌,有\(n\)个种类,每个种类有\(m\)张,现在抽一张放回,再抽一张,求这张牌与第一张抽出的牌种类相同的概率。思路本题是一道结论题,我们来推一下公式。首先需要特判一个点:只有\(1\)张牌,即\(n=m=1\),那么两次抽都会是这张牌,所......
  • GPIO
     通过编程读写相关寄存器。就可以实现对引脚的控制 先看两个32位的配置寄存器假设点亮某个LED灯,需要先设置端口配置高寄存器(GPIOx_CRH)(x=A..E)(配置成推挽输出) 这个配置就是GPIOC->CRH=0x00300000PS:输出速度一般按最低的就行,当然要求不高直接拉满对应的使用库函数为......
  • 华大 HC32F460 CAN 同时接收到两帧数据,导致后面的数据错位问题
    我在调试项目的时候,分为1个主机与2个从机,通过CAN进行通信,起初调的时候好好地,等将功能全部调完之后,整体断电,之后在上电,发现主机CAN通讯错乱,也就是接收的数据不对,比较混乱,之后我寻找问题发现2个从机上电之后会给主机发送CAN数据,我就怀疑是不是这个原因造成的CAN通讯混乱,之后我给屏......
  • Zynq7020 SDK 初学篇(3)- PS 端 GPIO Key
    一、开发环境 Zynq7020+Vivado2017.4二、开发背景:会使用Vivado开发工具,不熟悉的可以参考正点原子开发文档三、功能实现,按键控制LED定时闪烁,这里基于上一篇GPIOLED的基础上编写四、实现步骤:1、配置PS端BlockDesignMIO功能,根据配置表编写代码 ......
  • Zynq7020 SDK 初学篇(2)- PS 端 GPIO LED
    一、开发环境 Zynq7020+Vivado2017.4二、开发背景:会使用Vivado开发工具,不熟悉的可以参考正点原子开发文档三、功能实现,LED定时闪烁四、实现步骤:1、配置PS端BlockDesignMIO功能,根据配置表编写代码   2、导出到SDK,编写代码,编译运行#inclu......
  • 基于CUBEMX的STM32F4 Hal库,配置LVGL(无操作系统版)
    本篇文章移植思路适用于所有嵌入式MCU,包括Arm,STM32,NXP,乐鑫,Nuvoton,Arduino,RT-Thread,Zephyr,NuttX,Adafruit等等。为什么要写这一篇移植教程?也许你会说各种开源论坛上面上,已经有很多移植教程了,为什么还要再重新写一篇?因为很简单我按照前辈们的思路和移植步骤,到最后没有一个成功的,这......