/******************通过寄存器配置STM32的GPIOC——PIN0为低电平********************/
//宏定义RCC2起始地址+RCC_APB2ENR偏移地址
#define GPIOC_CLK (*(volatile unsigned int*)(0x40021000 + 0x18))
//宏定义GPIO端口C起始地址+GPIOx_CRL偏移地址
#define GPIOC_CRL (*(volatile unsigned int*)(0x40011000 + 0x00))
宏定义GPIO端口C起始地址+GPIOx_ODR偏移地址
#define GPIOC_ODR (*(volatile unsigned int*)(0x40011000 + 0x0C))
int main(void)
{
//1.使能goioB的时钟
//位4 IOPCEN
GPIOC_CLK |=(1<<4);
//2.清除低四位寄存器
//1111 1111 1111 [0000]
GPIOC_CRL &=~(0xf<<(4*0));
//3.配置GPIOC为推挽输出
//CNFy[1:0]:00:通用推挽输出模式 0000 0000 0000 [0000]
//MODEy[1:0]:10:输出模式,最大速度2MHz 0000 0000 0000 [0010]
GPIOC_CRL |=(2<<(4*0)) ;
//4.清除低1位寄存器
//ODRy[15:0]:1111 1111 1111 1110
GPIOC_ODR &=~(0x1<<(1*0));
//5.配置GPIOC_PIN0为高电平
//GPIOC_ODR |=(1<<0) ;
return 0;
}
通过寄存器配置STM32的GPIOC——PIN0为低电平
于 2023-09-25 15:54:45 首次发布