1.GPIO
在RCC初始化函数中,要加上
/* GPIO_LED clock enable */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOF, ENABLE);来初始化我们想要使用的端口,如果使用复用端口,要加上RCC_APB2Periph_GPIOF,即配置并开启相关模块时钟。
然后要初始化GPIO,如下:
/* Configure LED1 (PC.4)as alternate function push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
选择端口和对应的端口模块,GPIO mode等,初始化相关端口;
之后,就可以清零或置1相关端口了,如:
GPIO_SetBits(GPIO_LED1,GPIO_PIN_LED1);//置1
GPIO_ResetBits(GPIOx,GPIO_Pin);//清零
2.串口
(1)RCC 配置
首先在RCC初始化函数中加入以下内容,分别用来打开串口对应的IO的时钟,复用管脚的时钟和串口时钟:
/* Enable GPIOA and AFIO clock */
RCC_APB2PeriphClockCmd