STM32中,用端口配置低寄存器(GPIOx_CRL)来配置引脚Px0-Px7, 用端口配置高寄存器(GPIOx_CRH)来配置引脚Px8-Px15。 配置引脚PB8,使用的寄存器是GPIOB_CRH。下面我们来寻找这个寄存器的地址。 因为是PB8所以要配置对应的:CNF8和MODE8 关于此寄存器的说明位于8.2.2小节。先看标题GPIOx,表示PA,PB,PC直到PE都能...
因为PA8是属于高位,属于8~15的范围,对应的寄存器是CRH。 GPIOA->CRH&=0xFFFFFFF0; //这一步是位运算操作,特别注意这个& , 意思是先将之前的配置清除为0. GPIOA->CRH|=0x00000003; //这一步是位运算操作,特别注释这个|,意思是将新的配置赋值进去。 1. 2. 通过以上几个例子,相信大家已经看懂了吧? ...
偏移地址是0x04,意思是在基地址的基础上再加0x04,所以,对于GPIOB来说就是0x4001 0c04。如果配置PB0-PB7,那么需要的寄存器是低位的寄存器GPIOB_CRL,它的地址是0x4001 0c00。我们需要配置的寄存器是GPIOB_CRH。 找到需要操作的寄存器后,把它配置为通用输出。 复位值是0x4444 4444,并不是0x0000 0000。所谓的...
每个GPIO端口有两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH) ,两个32位数据寄存器 (GPIOx_IDR和GPIOx_ODR) ,一个32位置位/复位寄存器(GPIOx_BSRR),一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 GPIO端口的每个位可以由软件分别配置成多种模式。 输入浮空 输入上拉 输入下拉 模拟输入 ...
*RCC_APB2ENR|=0X0000001c;//先使能外设IO PORTa,b,c时钟 *RCC_APB2ENR |=1<<12; *GPIOB_CRH =0X00030000;//设置GPIOB的12引脚为推挽输出 while(1) { delay_ms(1000); //GPIOB->ODR = ~(1 << 12); //设置12引脚输出0 *GPIOB_ODR = ~(1<<12); ...
GPIOB->CRH|=0X00000080; //上拉输入 GPIOB->ODR|=1<<9; //PB9 上拉 TIM4->ARR=10000; //设定计数器自动重装值 最大10ms溢出 TIM4->PSC=71; //预分频器,1M的计数频率,1us加1. TIM4->CCMR2|=1<<8; //CC4S=01 选择输入端 IC4映射到TI4上 ...
STM32开发--GPIO详解 一.GPIO的寄存器 32位配置寄存器:GPIOx_CRL,GPIOx_CRH 32位数据寄存器:GPIOx_IDR,GPIOx_ODR 32位置位/复位寄存器:GPIOx_BSRR 16位复位寄存器:GPIOx_BRR 32位锁定寄存器:GPIOx_LCKR GPIOx_CRL :端口配置低寄存器 (控制P0--P7端口)...
GPIOA_CRH EQU 0x40010804 GPIOB_CRL EQU 0x40010C00 Stack_Size EQU 0x00000400 AREA STA...
Bit 3:GPIOB时钟使能(写1开启,写0关闭) Bit 2:GPIOA时钟使能(写1开启,写0关闭) Bit 0:辅助时钟IO时钟使能(写1开启,写0关闭) 5.2.2 端口配置低寄存器:GPIOx_CRL(x=A..E) 端口配置表: 5.2.3 端口配置高寄存器:GPIOx_CRH(x=A..E) 配置方式和端口配置低寄存器一致。
输入输出快速切换 #define HD7279_DAT_OUT GPIOB-》CRH=(GPIOB-》CRH&(~(0x0000000F《《20)))|0x00000003《《20 //推挽输出 #define HD7279_DAT_IN GPIOB-》CRH=(GPIOB-》CRH&(~(0x0000000F《《20)))|0x00000004《《20 //浮空输入