寄存器点亮:
//打开GPIOD时钟
*(unsigned int *)0x40021018 |=(1<<3);
//配置PD2口为输出低模式
*(unsigned int *)0x40010C00 |=(1<<4*5);
//PD2 输出低
*(unsigned int *)0x40010C0C &=~(1<<5);
*(unsigned int *)0x4001140C |=(1<<2);
//以下是对应一步步优化
RCC_APB2ENR |= ((1)<<3);
GPIOB_CRL |= ((1)<<(4*5));
GPIOB_ODR &=~(1<<5);
//
RCC_APB2ENR |= ((1)<<3);
GPIOB->CRL |= ((1)<<(4*5));
GPIOB->ODR &=~(1<<5);
//
RCC_APB2ENR |= ((1)<<3);
GPIOB->CRL |= ((1)<<(4*5));
GPIO_SetBits(GPIOB,GPIO_PIN_0);
该代码段展示了如何在STM32微控制器上初始化并配置GPIO端口D的PD2引脚为输出低模式,首先开启GPIOD的时钟,然后设置PD2为推挽输出并置其为低电平。后续的优化涉及到更简洁的寄存器操作和使用库函数GPIO_SetBits。
1586

被折叠的 条评论
为什么被折叠?



