void LED_Init(void){RCC->APB2ENR|=1<<4; //使能时钟 PORTCGPIOC->CRL&=0XFFF0FFFF;//PC4 配置位清零GPIOC->CRL|=0X00030000;//PC4 推挽输出GPIOC->ODR|=1<<4; //PC4 输出高电平,熄灭。等价于 GPIOC->ODR |=0X10;}intmain(){GPIOC->BSRR =0x10;//设置对应的 ODRy 位为1,给高电平-...
GPIO-CRL GPIO-CRL 端⼝低配置寄存器端⼝低配置寄存器寄存器的复位值为0X4444 4444,,复位值其实就是配置端⼝为浮空输 ⼊模式。STM32的CRL控制着每个IO端⼝(A~G)的低8位的模式。每 个IO端⼝的位占⽤CRL的4个位,⾼两位为CNF,低两位为MODE。这⾥我们可以记住⼏个 常⽤的配置,⽐如...
GPIOx->CRL &= ~(GPIO_CRL_MODE0 | GPIO_CRL_MODE1); // 清空MODE[1:0]配置位,复位到默认模式(默认是浮空输入模式) // 恢复备份的GPIO引脚配置 if(backup == 0) // 原始配置为低电平(0) { GPIOx->CRL |= GPIO_CRL_MODE0; // 设置MODE0为下拉模式(低电平) } else // 原始配置为高电平(...
配置GPIOC, Pin13端口输0为例: 点亮核心板PC13的绿灯. */#defineRCC_BASE_ADDRESS ((unsigned int)0x40021000)#defineRCC_APB2ENABLE_M *((unsigned int*)(RCC_BASE_ADDRESS + 0x18))#defineGPIOC_ADDRESS ((unsigned int)0x40011000)#defineGPIOC_CRL_M *((unsigned int*)GPIOC_ADDRESS)#defineGPIOC_...
IO引脚的工作模式的设置通过模式选择寄存器GPIOx_MODER来完成,GPIO中的每一个引脚的功能都由两个位控制,CNF0[1:0]与MODE0[1:0]配置序号为0的引脚,后面的引脚依次类推,一组IO口有16个引脚,故需要64bit来配置一组端口,在Stm32中利用两个32位寄存器高位CRH与低位CRL寄存器控制GPIO。其中每一个IO口都是由7个...
GPIOA->CRL&=0xfffffff0; GPIOA->CRL|=0x00000008; 1. 2. 第一行代码是为了让第0、1、2、3这四位置0,其它位不变;第二行代码是为了让第0、1、2、3这4位变为1000,其它位不变。 KEY0的GPIO配置: ①PE4为低4位,所以使用GPIOE_CRL寄存器 ...
GPIOD->CRL|=0x00000300; //上拉 GPIOA->ODR|=1<<8; GPIOD->ODR|=1<<2; } /* 函数功能: 延时ms单位 */ void DelayMs(int ms) { int i,j,n; for(i=0;i<ms;i++) for(j=0;j<100;j++) for(n=0;n<100;n++); } int main(void) ...
CRL 每组GPIO有16个IO引脚,CRL 控制端口的低8个IO引脚, CRH 控制端口的高8个IO引脚,每个IO引脚由4个位控制。 高2位为CNF配置IO口工作方式: 低2位为MODE配置IO口是输入/出和端口速度 3.2 2 个 32 位端口数据寄存器(IDR 和 ODR) 作用:用来控制IO口数据输出和检测IO口数据输入。ODR(可写可读) 这里低16位...
#include"stm32f10x.h"intmain(void){// 开启GPIOA的时钟RCC->APB2ENR|=RCC_APB2ENR_IOPAEN;// 直接修改CRL寄存器来配置PA0// 每个引脚占4位,所以PA0的配置位于CRL的低4位// 设置为输出模式 (01: 10 MHz General Purpose Output push-pull)GPIOA->CRL&=~(0x0F<<(0*4));// 清除PA0原来的配...
gpiox_crl和gpiox_crh寄存器的工作原理在嵌入式系统中,GPIO(通用输入输出)用于与微控制器的外部世界进行数字信号的输入和输出。对于不同的微控制器,GPIO 的配置和控制可能会有所不同。GPIOx_CRL 和 GPIOx_CRH 寄存器是用于配置 GPIO 的寄存器,其中 x 代表具体的 GPIO 端口编号。这里的解释以一般性的概念为...