stm32筆記:點(diǎn)亮一個(gè)led (精簡(jiǎn)版)
僅包含啟動(dòng)文件 "STM32F10x.s"
C代碼
#defineGPIOA_CRL(*(volatileunsignedlong*)(0x40000000+0x10000+0x0800+0x00))
#defineGPIOA_CRH(*(volatileunsignedlong*)(0x40000000+0x10000+0x0800+0x04))
#defineGPIOA_IDR(*(volatileunsignedlong*)(0x40000000+0x10000+0x0800+0x08))
#defineGPIOA_ODR(*(volatileunsignedlong*)(0x40000000+0x10000+0x0800+0x0C))
#defineRCC_APB2ENR(*(volatileunsignedlong*)(0x40000000+0x20000+0x1000+0x18))
voiddelay(unsignedlongi)//超級(jí)不精確的軟延時(shí)
{
intj;
while(i--)
{
for(j=0;j<1500;j++)
{}
}
}
intmain(void)
{
RCC_APB2ENR=1<<2;//打開(kāi)PA時(shí)鐘,默認(rèn)啟用內(nèi)部8M時(shí)鐘
GPIOA_CRH&=0XFFFFFFF0;//準(zhǔn)備配置PA
GPIOA_CRH|=0X00000003;//PA8推挽輸出
GPIOA_ODR|=1<<8;//PA8輸出高,即先關(guān)閉led
while(1)
{
GPIOA_ODR&=0<<8;
delay(3000);
GPIOA_ODR|=1<<8;
delay(3000);
}
}