寄存器)"/>
按键控制灯(寄存器)
核心:基地址加偏移地址,然后通过位操作
main.c
void delay(int time)
{while(time --);}
int main()
{//使能GPIOCunsigned int *pRcc = (unsigned int *)(0x40021000 + 0x18);*pRcc |= (1<<4); //使能GPIOApRcc = (unsigned int *)(0x40021000 + 0x18);*pRcc |= (1<<2);//设置GPIOC 13为输出模式unsigned int *pMode = (unsigned int *)(0x40011000 + 0x04);*pMode |= (0x01 << 20);//设置GPIOA 10为输入模式pMode = (unsigned int *)(0x40010800 + 0x04);*pMode &= ~(0x01 << 8);*pMode |= (0x01 << 10);//浮空输入while(1){//GPIOC13输出1unsigned int *pOutput = (unsigned int *)(0x40011000 + 0x0C);
// *pOutput |= (1 << 13);unsigned int *pInput = (unsigned int *)(0x40010800 + 0x08);// //延时
// delay(1000000);
// //GPIOC13输出0
// *pOutput &= (0 << 13);
// delay(1000000);//如果GPIOA 10读取的是高电平,灯就灭if((*pInput &= (1<<10)) > 0){*pOutput |= (1 << 13);//灭}else{*pOutput &= (0 << 13); //亮}}// return 0;
}
更多推荐
按键控制灯(寄存器)
发布评论