一、寄存器介绍(详见中文参考手册7.4):
每组GPIO下面包含10个寄存器。也就是10个寄存器,一共可以控制一组GPIO的16个IO口。最多7组IO,也就是70个寄存器。
寄存器分别如下:
一个端口模式寄存器(GPIOx_MODER)
一个端口输出类型寄存器(GPIOx_OTYPER)
一个端口输出速度寄存器(GPIOx_OSPEEDR)
一个端口上拉下拉寄存器(GPIOx_PUPDR)
一个端口输入数据寄存器(GPIOx_IDR)
一个端口输出数据寄存器(GPIOx_ODR)
一个端口置位/复位寄存器(GPIOx_BSRR)
一个端口配置锁存寄存器(GPIOx_LCKR)
两个复用功能寄存器(低位GPIOx_AFRL& GPIOx_AFRH)
-----------------------------------------------------------------------------------------------------------------------------------------------------------
二、寄存器详解
①端口模式寄存器(GPIOx_MODER)
②端口输出类型寄存器(GPIOx_OTYPER)
③输出速度寄存器(GPIOx_OSPEEDR)
④端口上拉下拉寄存器(GPIOx_PUPDR)
⑤端口输出数据寄存器(GPIOx_ODR)
⑥端口输入数据寄存器(GPIOx_IDR)
⑦端口置位/复位寄存器(GPIOx_BSRR)
----------------------------------------------------------------------------------------------------------------------------------
注意:如果在配置IO的寄存器前一定要先配置时钟的寄存器,与库函数版本一样
各总线、外设基地址可参考STM32F4xx中文参考手册2.3节的存储器映射
关键字:GPIO 寄存器 配置
引用地址:
GPIO相关寄存器配置详解
推荐阅读最新更新时间:2024-11-12 18:05
STM32GPIO的8种工作模式
一、推挽输出:可以输出高、低电平,连接数字器件;推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。 推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。输出既可以向负载灌电流,也可以从负载抽取电流。推拉式输出级既提高电路的负载能力,又提高开关速度。 二、开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行。适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。开漏形式的电路有以下几个特点: 1、利用外部电
[单片机]
STM32初识——通用定时器配置
通用定时器的益处时间 Tout= ((arr+1)*(psc+1))/Tclk; TIM3时钟使能 TIM3 是挂载在 APB1 之下,所以我们通过 APB1 总线下的时钟使能函数来使能 TIM3。调用的函数是: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能 初始化定时器参数,设置自动重装值,分频系数,计数方式。 在库函数中,定时器的初始化参数是通过初始化函数 TIM_TimeBaseInit 实现的: voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef* TIM_Time
[单片机]
S3C2440裸机复习------GPIO
第一遍看完S3C2440裸机后,有些遗忘了,再挑选几个复习一下,首先是GPIO。 1 原理图 首先需要看一下原理图,可以看到我们把GPF4设置为低电平就可以让LED1点亮。 2 芯片手册 从芯片手册可以看到,我们要把GPFCON寄存器的 设置为01,然后GPFDAT的 设置为0. 3 汇编语言点亮LED 3.1 start.S .test .global _start mov 0x56000050 #0x100 mov ox56000054 #0x10 .halt b halt 3.2 makefile all: arm-linux-gcc -c start.S -o start.o
[单片机]
浅谈S3C2440的中断寄存器及中断过程
S3C2440一共有60个中断源,其中有15个子中断源,它们与SUBSRCPND寄存器中的每一位相对应,其他45个中断源与SRCPND中的每一位相对应。要注意的是EINT4~7对应的是同一位SRCPND ,而EINT8~23对应的也是SRCPND 一位。 1 S3C2440的中断寄存器 中断分两大类:外部中断和内部中断。 1.1 外部中断寄存器 24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。 寄存器: EX
[单片机]
51手记之寄存器&寻址篇
题记:刚开始练51时就用C语言,现在想再加强一下汇编,所以不得不对单片机的硬件结构,特别是地址空间的分配方面详细的做一下了解了。于是决定拿起课本北航的《智能化测量控制仪表原理与设计》重新学一遍。书本是基础,然后应该把自己的一些应用体会实例什么的也加上去,这样学起来就事半功倍了毕竟这是再学习不是入门了。 51单片机的存储器结构: 在物理上可以分为4个存储器空间:即片内ROM,片外ROM,片内RAM,片外RAM。51/52单片机有64KB(2的16次方,16条地址线寻址)的ROM地址空间。其中51有4KB的片内ROM,52有8KB的片内ROM。至于使用片内还是片外的存储器,可以靠控制信号EA脚来设置,当从片内存储器开始取指令
[单片机]
如何使用逻辑分析仪完成接线配置和数据采集
时序和协议是数字系统调试的两大关键点,也是逻辑分析仪最能发挥价值的地方。如何使用逻辑分析仪快速地完成接线配置并采集到数据呢?这里以IIC协议为例为大家实测演示。 数字系统逻辑关系是通讯研发过程中的关键,它直接影响到整个设备系统能否正常工作。 虽然示波器也能做部分数字信号分析,但受限于通道数(一般只有4个通道)和存储深度(较小)。逻辑分析仪可以达到34通道,记录深度最长可达2G,再配合数据压缩算法,大大提高了工程师测试时序分析的效率。 下面以IIC为例,分享逻辑分析仪测试步骤。 一、准备工作 测试主要为被测对象、逻辑分析仪、电脑,IIC协议信号。 逻辑分析仪使用标配的电源适配器供电,并按下电源键。用USB线将仪器与PC机相连
[测试测量]
一加10R手机配置曝光:天玑8100芯片 150W快充!
行业消息称,目前一加计划在下个月正式发布一加10R手机,这款手机可以理解为一加10 Pro的同系列入门级手机,而目前配置以及手机的背部已经基本曝光了。 一加10R手机将采用6.7英寸大屏,并且达到了E4级别的AMOLED屏幕也有着不错的显示能力,120Hz高刷也配备其中。 核心配置方面,将搭配天玑8100芯片,提供8+128以及12+256的两套配置。影像方面也可圈可点,该机将搭载后摄三摄的模组,主摄为5000万像素,搭载索尼IMX766 主传感器。 续航方面也不错,提供了5000mAh大容量电池+80W快充的搭配。
[手机便携]
ATmega16 MCU控制寄存器MCUCR
MCU 控制寄存器包含了电源管理的控制位。 · Bits 7, 5, 4 – SM2..0: 休眠模式选择位 2、1 和0如 Table 13 所示,这些位用于选择具体的休眠模式。 · Bit 6 – SE: 休眠使能 为了使MCU 在执行SLEEP 指令后进入休眠模式, SE 必须置位。为了确保进入休眠模式是程序员的有意行为,建议仅在SLEEP 指令的前一条指令置位SE。MCU 一旦唤醒立即清除SE
[单片机]