尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

STM32程序编辑使用库(每天更新版)
📅 发布时间:2026/7/11 22:44:30

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 / DISABLE

gpio.h

常用GPIO函数

GPIO_InitTypeDef GPIO_InitStruct ; //GPIO初始化类型 GPIO初始化结构体

GPIO_InitStruct.GPIO_Mode = //模式参数:GPIO_Mode_x

GPIO_InitStruct.GPIO_Pin = //引脚参数:GPIO_Pin_x

GPIO_InitStruct.GPIO_Speed = //输出速度参数:GPIO_Speed_x

GPIO_Init(GPIOx,&GPIO_InitStruct);

调用已经配置好的结构体,写入到GPIOx中

void GPIO_AFIODeInit(void);//

复位AFIO外设

参数:()

void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);

设置默认值(安全参数)

参数:GPIO_InitStruct

void GPIO_DeInit(GPIO_TypeDef* GPIOx);

复位GPIOx端口

参数:GPIOx

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

将GPIO端口某些引脚设置为高电平1

参数:GPIOxGPIO_Pin_x

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

将GPIO端口某些引脚置为低电平0

参数:GPIOxGPIO_Pin_x

void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);

指定GPIO端口某个引脚电平1或0

参数:GPIOxGPIO_Pin_xBit_SET/RESET

void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

设置GPIO端口所有引脚数据(16位)

参数:GPIOx0x0000

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

读取GPIO口某一引脚电平(输入数据寄存器中的某一位)

参数:GPIOxGPIO_Pin_x

uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);

读取GPIO端口整个输入数据寄存器

参数:GPIO

uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

读取GPIO口某一引脚电平(输出数据寄存器中读取)

参数:GPIOxGPIO_Pin_x

uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

读取GPIO端口整个输出数据寄存器

参数:GPIOx

EXTI外部中断

AFIO:

void GPIO_AFIODeInit(void);

复位AFIO外设,清除AFIO外部配置

参数:()

void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

锁定GPIO配置

参数:GPIOxGPIO_Pin_x

void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);

进行引脚重映射

参数:重映射的方式ENABLE/DISABLE

void 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_PinSourcex

void GPIO_EventOutputCmd(FunctionalState NewState);

启用或禁止事件输出

参数:ENABLE/DISABLE

EXTI:

EXTI_InitTypeDef EXTI_InitSturct;

EXTI_InitSturct.EXTI_Line = ;//选择线路配置为中断模式:参数:EXTI_Linex

EXTI_InitSturct.EXTI_LineCmd = ;//指定状态参数:ENABLE/DISABLE

EXTI_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_InitStruct

void 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/0)

void EXTI_ClearFlag(uint32_t EXTI_Line);

对被置1的标志位进行清除

中断程序查看标志位:

EXTI_GetITStatus(uint32_t EXTI_Line);

获取中断标志位是否被置1

void EXTI_ClearITPendingBit(uint32_t EXTI_Line);

清除中断挂起标志位

NVIC:

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);

中断分组

参数:NVIC_PriorityGroupx(1~4)

NVIC_InitTypeDef NVIC_InitStruct;

NVIC_InitStruct.NVIC_IRQChannel=;//指定中断通道

NVIC_InitStruct.NVIC_IRQChannelCmd=;//指定使能/失能参数ENABLE/DISABLE

NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=;//指定抢占优先级0~15

NVIC_InitStruct.NVIC_IRQChannelSubPriority=;//指定响应优先级 0~15

void 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);

系统低功耗配置

相关新闻

  • LiteParse v2.0:Rust重构的文档解析引擎与无LLM架构实践
  • 基于PIC微控制器与压电蜂鸣器的智能警报系统设计
  • STM32F437ZG与MCP3551高精度ADC信号采集实战

最新新闻

  • 高端制造半导体 EDA工业软件 设计EDA四级赛道|研发组长/TL/技术主管(技术管理线)精维格调十维岗位简历画像
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • 去烟味喷雾选购指南:分解型与掩盖型产品的本质差异与选择标准。 - 行业洞察分析师
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改
  • 通信网络定级备案 2024:6份核心报告自写指南与3个常见填报误区

日新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号