MM32spin27P程序下载口与晶振口作为GPIO
晶振口作为外设一定要使用内部晶振,在板子设计的时候可以进行一个开关的设计。第二点就是需要进行复用功能配置
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
使用内部晶振可以不用外部晶振,IO就可以进行复用。 在默认情况下,GPIO引脚是浮空状态。 MM32spin27P程序下载口 很多复用引脚是可以作为普通IO使用的 内部RC振荡器的精度和稳定性要差一些。 学习一下 把晶振的端口复用成IO了? 其实没啥问题的,复用正常操作,这个比较简单的 一般来说,配置内部晶振的话,还用串口好像就不太行吧,精度不够啊 内部晶振一般来说,要不是高精度操作,最好是不用 这个咋说呢,外部晶振还是比较好的,不用内部晶振比较合适 其实复用就直接用就行了,没必要设计开关吧 这种都不如复用其他IO了,比较方便 话说下载口设计个复用的话,注意要延时几秒,不然程序不好烧录的 你的IO用的这么多啊,还需要复用这几个关键的外设呢 我觉得用内部晶振就是容易精度不准,不太好弄
页:
[1]