1、使能对应外设的时钟,修改RCC模块的APB2ENR寄存器;
2、配置相应引脚的属性,LED连接在PC13;
3、每个外设的起始地址;
4、修改寄存器的值使其点亮和熄灭。
电路图如下:
代码:
int main(void)
{
//ENABLE GPIOC
__IO uint32_t *pRCC_APB2ENR;
pRCC_APB2ENR=(__IO uint32_t *)0x40021018;
*pRCC_APB2ENR|=(1<<4);
//CONFIGURE GPIOC13
__IO uint32_t *pGPIOC_CRH;
pGPIOC_CRH=(__IO uint32_t *)0x40011004;
*pGPIOC_CRH|=(1<<20);
//LED
__IO uint32_t *pGPIOC_BSRR;
pGPIOC_BSRR=(__IO uint32_t *)0x40011010;
while(1)
{
//LED OFF
*pGPIOC_BSRR=(1<<13);
Delay(0xfffff);
//LED ON
*pGPIOC_BSRR=(1<<29);
Delay(0xfffff);
}
}
参考文献:1-STM32F10x-英文参考手册、1-STM32F10x-中文参考手册、【野火®】零死角玩转STM32—F103指南者