看了网上视频的寄存器操作,又看了下072的参考手册还真和M3核不一样
GPIO口的时钟使能寄存器是AHBENR,
而GPIO口寄存器有4个32位的配置寄存器,分别是MODER,OTYPER,OSPEEDR,PUPDR.
2个32位的数据寄存器IDR和ODR.
1个32位的设置/复位寄存器BSRR.
1个32位的锁存器LCKR (PORA和PORTB).
2个复用选择寄存器AFRH 和AFRL(PORTA-PORTE).
072开发板上LED在PA5上;
void LED_Init(void)
{
RCC->AHBENR|=1<<17;
GPIOA->MODER&=0xfffff0ff;
GPIOA->MODER|=0x00000400;
GPIOA->OTYPER&=0xffffffef;
GPIOA->OSPEEDR|=0x00000c00;
}
int main(void)
{
SystemInit();
LED_Init();
while(1)
{
GPIOA->ODR|=1<<5;
Delay_Ms(500);
GPIOA->ODR&=0xffffffcf;
Delay_Ms(500);
}
}
比起库函数老说,是不是很精简
|