有不足之处请指教。
目录
RCC_APB2PeriphClockCmd(XXXX/*打开对应的数字*/, ENABLE);
GPIO_Init(KEY1_PORT,GPIO_InitStructure);
GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
(GPIO_TypeDef* GPIOx, u16 GPIO_Pin)GPIO模式浮空输入使用
GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)重映射
1.RCC时钟
1.stm32的io口由时钟线和P口同时决定的,时钟线负责打开io口,P口决定io工作情况。
2.芯片里面各种功能也要打开对应的时钟才能正常工作。
2.GPIO工作
1.浮空,下拉,上拉输入都能读取输入的电平,也能输出。
2.各个外设的引脚模式配置在8.1.11 外设的GPIO配置有。
3. GPIO初始化与部分GPIO函数
GPIO_InitTypeDef GPIO_InitStructure;
/*开启控制 XX 的GPIO的端口时钟*/
RCC_APB2PeriphClockCmd(XXXX/*打开对应的数字*/, ENABLE);
/*选择要控制 XX 的GPIO*/
GPIO_InitStructure.GPIO_Pin = PIN ;//对应的P口
//设置 PIN 的引脚为模式
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
/*设置引脚速率为50MHz */浮空输入不需要配置速度
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
/*调用库函数,初始化控制XX的GPIO*/
GPIO_Init(KEY1_PORT,GPIO_InitStructure);
//根据输入高低电平打开原则选择其一
//清除数据,默认低电平
//第一的变量是GPIOX口,第二变量是对应的IO口
GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
//写入数据,输出高电平
//第一的变量是GPIOX口,第二变量是对应的IO口
GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
u8 GPIO_ReadInputDataBit
(GPIO_TypeDef* GPIOx, u16 GPIO_Pin)GPIO模式浮空输入使用
功能描述 读取指定端口管脚的输入
输入参数 1 GPIOx:x 可以是 A,B,C,D 或者 E,来选择 GPIO 外设
输入参数 2 GPIO_Pin:待读取的端口位
拉低GPIO电平返回1
拉高GPIO电平返回0
GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)重映射
功能描述 改变指定管脚的映射
输入参数 1 GPIO_Remap: 选择重映射的管脚
输入参数 2 NewState: 管脚重映射的新状态