1.寄存器编程实现点灯操作
/*
_
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||_ \
| | \\\ - /'| | |
| \_| `\`---'// |_/ |
\ .-\__ `-. -'__/-. /
___`. .' /--.--\ `. .'___
."" '< `.___\_<|>_/___.' _> \"".
| | : `- \`. ;`. _/; .'/ / .' ; |
\ \ `-. \_\_`. _.'_/_/ -' _.' /
================-.`___`-.__\ \___ /__.-'_.'_.-'================
`=--=-'
佛祖保佑 永无BUG 永不宕机
*/
#define GPIOB_CLK (*(volatile unsigned int *)(0x40021000 + 0x18))
#define GPIOB_CRL (*(volatile unsigned int *)(0x40010C00 + 0x00))
#define GPIOB_ODR (*(volatile unsigned int *)(0x40010C00 + 0x0C))
int main(void)
{
//使能GPIO外设时钟
GPIOB_CLK |= (1<<3);
//配置io模式为推挽输出
GPIOB_CRL &= ~(0xf<<(4*5));//清除四位寄存器
GPIOB_CRL |= (2<<(4*5));
GPIOB_ODR &= ~(0x1<<(1*5));//清除低五位寄存器
GPIOB_ODR |= (1<<5);
}