STM32程序编辑使用库(每天更新版)

📅 2026/7/11 22:33:48
STM32程序编辑使用库(每天更新版)
GPIO8种输入输出模式*输出模式控制端口输出高低电平用以驱动LED、蜂鸣器、模拟通信协议输出时序 等*输入模式读取端口高低电平或电压用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等GPIO_Mode_AIN 0x0, 模拟输入GPIO_Mode_IN_FLOATING 0x04, 浮空输入GPIO_Mode_IPD 0x28, 下拉输入GPIO_Mode_IPU 0x48, 上拉输入GPIO_Mode_Out_OD 0x14, 开漏输出仅低电平有驱动能力GPIO_Mode_Out_PP 0x10, 推挽输出高低电平都有驱动能力GPIO_Mode_AF_OD 0x1C, 复用开漏GPIO_Mode_AF_PP 0x18 复用推挽GPIO输出使用库rcc.h常用时钟RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);参数RCC_APB2Periph_x ENABLE / DISABLEgpio.h常用GPIO函数GPIO_InitTypeDef GPIO_InitStruct ; //GPIO初始化类型 GPIO初始化结构体GPIO_InitStruct.GPIO_Mode //模式参数GPIO_Mode_xGPIO_InitStruct.GPIO_Pin //引脚参数GPIO_Pin_xGPIO_InitStruct.GPIO_Speed //输出速度参数GPIO_Speed_xGPIO_Init(GPIOx,GPIO_InitStruct);调用已经配置好的结构体写入到GPIOx中void GPIO_AFIODeInit(void);//复位AFIO外设参数()void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);设置默认值安全参数参数GPIO_InitStructvoid GPIO_DeInit(GPIO_TypeDef* GPIOx);复位GPIOx端口参数GPIOxvoid GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);将GPIO端口某些引脚设置为高电平1参数GPIOxGPIO_Pin_xvoid GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);将GPIO端口某些引脚置为低电平0参数GPIOxGPIO_Pin_xvoid GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);指定GPIO端口某个引脚电平1或0参数GPIOxGPIO_Pin_xBit_SET/RESETvoid GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);设置GPIO端口所有引脚数据16位参数GPIOx0x0000uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);读取GPIO口某一引脚电平输入数据寄存器中的某一位参数GPIOxGPIO_Pin_xuint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);读取GPIO端口整个输入数据寄存器参数GPIOuint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);读取GPIO口某一引脚电平输出数据寄存器中读取参数GPIOxGPIO_Pin_xuint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);读取GPIO端口整个输出数据寄存器参数GPIOxEXTI外部中断AFIOvoid GPIO_AFIODeInit(void);复位AFIO外设清除AFIO外部配置参数()void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);锁定GPIO配置参数GPIOxGPIO_Pin_xvoid GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);进行引脚重映射参数重映射的方式ENABLE/DISABLEvoid GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);选择用作EXTI线的GPIO引脚参数GPIO_PortSourceGPIOx指定GPIO端口GPIO_PinSourcex指定引脚不常用void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);选择以太网媒体接口参数arg GPIO_ETH_MediaInterface_MII : MII 模式arg GPIO_ETH_MediaInterface_RMII : RMII 模式void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);选择GPIO引脚作为Event输出参数GPIO_PortSourceGPIOx GPIO_PinSourcexvoid GPIO_EventOutputCmd(FunctionalState NewState);启用或禁止事件输出参数ENABLE/DISABLEEXTIEXTI_InitTypeDef EXTI_InitSturct;EXTI_InitSturct.EXTI_Line ;//选择线路配置为中断模式参数EXTI_LinexEXTI_InitSturct.EXTI_LineCmd ;//指定状态参数ENABLE/DISABLEEXTI_InitSturct.EXTI_Mode ;//指定外部中断线模式参数EXTI_Mode_Interrupt中断模式EXTI_Mode_Event事件模式EXTI_InitSturct.EXTI_Trigger ;//指定触发信号的有效边沿EXTI_Trigger_Rising上升沿EXTI_Trigger_Falling下降沿EXTI_Trigger_Rising_Falling双边沿void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);初始化EXTI参数EXTI_InitStructvoid EXTI_DeInit(void);清除EXTI配置void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct);把参数传递结构体变量赋默认值结构体初始化模块定义结构体→结构体赋值→传递结构体地址void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);软件触发外部中断参数EXTI_Linex主程序查看标志位EXTI_GetFlagStatus(uint32_t EXTI_Line);获取指定的标志位是否被置1标志位记录某事件是否发生1/0void EXTI_ClearFlag(uint32_t EXTI_Line);对被置1的标志位进行清除中断程序查看标志位EXTI_GetITStatus(uint32_t EXTI_Line);获取中断标志位是否被置1void EXTI_ClearITPendingBit(uint32_t EXTI_Line);清除中断挂起标志位NVICvoid NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);中断分组参数NVIC_PriorityGroupx1~4NVIC_InitTypeDef NVIC_InitStruct;NVIC_InitStruct.NVIC_IRQChannel//指定中断通道NVIC_InitStruct.NVIC_IRQChannelCmd//指定使能/失能参数ENABLE/DISABLENVIC_InitStruct.NVIC_IRQChannelPreemptionPriority//指定抢占优先级0~15NVIC_InitStruct.NVIC_IRQChannelSubPriority//指定响应优先级 0~15void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);根据结构体指定参数初始化NVIC不常用void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);设置中断向量表void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState);系统低功耗配置