1. GPIOx_CRL和GPIOx_CRH寄存器 1.1这两个寄存器一共64个比特位, 用于控制16根GPIO引脚(Pin0-15). 每4个比特位控制一根引脚. 如图CNF0, MODE0控制Pin0. 以此类推... (GPIOx_CRL控制Pin0-7, CRH控制Pin8-15) 2. GPIOx_IDR和GPIOx_ODR寄存器 2.1GPIOx_IDR寄存器为端口输入寄存器, 只能以16位的形式...
CRH 32位端口配置高寄存器(GPIOx_CRH) (x=A..E) 用于配置高8位的GPIO口,每个GPIO口占用4个比特位,与CRL寄存器类似,用于设置引脚的模式、输入/输出类型、上下拉电阻等。 CNFy[1:0]:端口x配置位(y =8…15)---MODEy[1:0]:端口x的模式位(y =8…15) IDR 32位端口输入数据寄存器(GPIOx_IDR) (x=A...
gpiox_crl和gpiox_crh寄存器的工作原理在嵌入式系统中,GPIO(通用输入输出)用于与微控制器的外部世界进行数字信号的输入和输出。对于不同的微控制器,GPIO 的配置和控制可能会有所不同。GPIOx_CRL 和 GPIOx_CRH 寄存器是用于配置 GPIO 的寄存器,其中 x 代表具体的 GPIO 端口编号。这里的解释以一般性的概念为...
端口配置低寄存器(GPIOx_CRL) (x=A..E) 端口配置高寄存器(GPIOx_CRH) (x=A..E) 这个寄存器为什么分GPIOX_CRL和GPIOX_CRH? 前面已经说过,STM32的IO口为了高、低两个部分进行管理。 0~7的IO口编号属于低位,8 ~ 15 的IO口属于高位。 其中的X是代号,实际使用可以替换为:A、B、C、D、... 也就是实...
GPIOx_CRH(x = A..E)端口配置高寄存器 32位寄存器 GPIOx_IDR(x = A..E)端口输入数据寄存器 32位寄存器但仅用低16位 GPIOx_ODR(x = A..E)端口输出数据寄存器 32位寄存器但仅用低16位 GPIOx_BRR(x = A..E)端口位清除寄存器 16位寄存器 ...
那么对于GPIO的IO口相关的寄存器呢,这里主要说明控制寄存器:CRL、CRH、IDR、ODR、BSRR、LCKR。 CRL和CRH是GPIO端口配置寄存器。CRL是低8位IO口的配置寄存器,CRH是高8位IO的配置寄存器。 端口配置寄存器 如上图32位寄存器每4位表示一个IO,我们代码中配置GPIO输出,那么这4位数据构成应该是CNFY=0x00设置为通用的推挽...
GPIOx_CRH(x = A..E)端口配置高寄存器 GPIOx_IDR(x = A..E)端口输入数据寄存器 GPIOx_ODR(x = A..E)端口输出数据寄存器 GPIOx_BRR(x = A..E)端口位清除寄存器 GPIOx_BSRR(x = A..E)端口位设置/清除寄存器 GPIOx_LCKR(x = A..E)端口配置锁定寄存器 ...
每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH) ,两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR) ,一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 GPIO端口的每个位可以由软件分别配置成多种模式。
我们想要想控制一个GPIO口的需要操作7个寄存器,分别是CRL,CRH,IDR,ODR,BRR,BSRR,LCKR我们对GPIO的操作本质上就是在对这些寄存器进行读写操作,以下是这些寄存器的名称: GPIOx_CRL(x=A..E)端口配置低寄存器32位寄存器 GPIOx_CRH(x=A..E)端口配置高寄存器32位寄存器 ...
STM32上下拉及浮空模式的配置是通过GPIOx_CRL 和 GPIOx_CRH 寄存器控制的。 STM32 内部的上拉其实是一个弱上拉,也就是说通过此上拉电阻输出的电流很小,如果想要输出一个大电流,那么就需要外接上拉电阻了。 (3)、P-MOS 和和 S N-MOS GPIO 引脚经过两个保护二极管后就分成两路, ...