https://www.cnblogs.com/Recca/p/7786967.html有关复位的简洁概况
https://blog.csdn.net/qq_29350001/article/details/54024070//有关关键字volatile
https://www.cnblogs.com/alvis-jing/p/3674986.html有关GPIO的介绍,初学看一下很好呀
https://blog.csdn.net/qq_29350001/article/details/80681244//GPIO总结,里面链接里的其他文章也很棒。
https://wenku.baidu.com/view/84aae02df705cc1754270948.html//复用和重映射功能的介绍,详细
1、初始化程序
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE); //使能 PB,PE 端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED0–>PB.5 推挽输出
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_5); //PB.5 输出高
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //LED1–>PE.5 推挽输出
GPIO_Init(GPIOE, &GPIO_InitStructure);
GPIO_SetBits(GPIOE,GPIO_Pin_5); /PE.5 输出高
//一些补充
1、所有端口都有外部中断能力。为了使用外部中断线,端口必须配置成输入模式
2、具有独立的唤醒I/O口。
3、很多I/O口的复用功能可以重新映射
//一些寄存器
//AFIO_MAPR
//这个寄存器有四个
//一些库函数