1.打开端口时钟(以点亮一盏灯为例)spa
(1)找出灯的控制口blog
(2)找到端口所在的时钟(此处是PB5,因此找GPIOB所在的端口时钟)class
(3)打开端口GPIOB。配置
原来GPIOB在APB2总线上,即在APB2上才能给GPIOB使能。已经得出GPIOB在APB2上,打开端口GPIOB。具体操做:RCC->APB2ENR |=1<<3;硬件
2.配置的输入输出方式。im
前面已经打开了PB口,要配置PB5的输入输出方式,要具体操做以下:d3
GPIOB->CRL &=0XFF0FFFFF; //LED0为输出的,故MODE5[1:0]=11;又点灯要么0要么1,所以设置为推挽输出,故CNF5[1:0]=00img
GPIOB->CRL |=0X00300000; //在设置前先对CNF5,MODE5清零,其余位不变。 端口
另外,若是PB5接的是按键,即输入的话,代码以下:co
GPIOB->CRL &=0XFF0FFFFF; //LED0为输入的,故MODE5[1:0]=00;若采集按键状态要么0要么1,所以设置为上下拉,故CNF5[1:0]=10
GPIOB->CRL |=0X00800000; //在设置前先对CNF5,MODE5清零,其余位不变。
3.配置初始化输入输出电平
a.将输出电平拉高:GPIOB->ODR |=1<<5; //具体须要拉低仍是拉高看硬件以及达到的效果
b. 将输出点平拉低:GPIOB->ODR &=~(1<<5);
另外,若是PB5接的是按键,即输入的话,一样也须要对输出初始化。若要读取输入值则为:GPIOE->IDR & 1<<5