晶振口作为外设一定要使用内部晶振,在板子设计的时候可以进行一个开关的设计。
第二点就是需要进行复用功能配置
GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_2);//开启复用功能
GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_2);//开启复用功能
下面直接上干货:
void KEY2_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14; // K1
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置成上拉输入
GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA5
GPIO_SetBits(GPIOA, GPIO_Pin_13|GPIO_Pin_14);//默认为高点平
GPIO_PinAFConfig(GPIOA,GPIO_PinSource13,GPIO_AF_3);//开启复用功能
GPIO_PinAFConfig(GPIOA,GPIO_PinSource14,GPIO_AF_3);//开启复用功能
}
void GPIO3_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG,ENABLE);
RCC->APB1RSTR|=1<<28;
delay_ms(5);
RCC->RESERVED0|=1<<16;
delay_ms(5);
RCC->RESERVED0&=0<<16;
delay_ms(5);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; // K1
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置成上拉输入
GPIO_Init(GPIOD, &GPIO_InitStructure); //初始化GPIOA5
//GPIO_SetBits(GPIOD, GPIO_Pin_0|GPIO_Pin_1);//默认为高点平
GPIO_ResetBits(GPIOD,GPIO_Pin_0|GPIO_Pin_1);
GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_2);//开启复用功能
GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_2);//开启复用功能
}
以上就是对gpio的设置
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/badaoshaonian/article/details/100985477
|