当前位置: 首页 > article >正文

STM32标准库代码详解之GPIO

GPIO的初始化代码如下:

/*开启时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	//开启GPIOA的时钟,使用外设必须开启
				
/*GPIO初始化*/
GPIO_InitTypeDef GPIO_InitStructure;					//定义结构体变量
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		//GPIO模式,赋值为推挽输出模式
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;				//GPIO引脚,赋值为第0号引脚
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		//GPIO速度,赋值为50MHz

GPIO_Init(GPIOA, &GPIO_InitStructure);					//传递给GPIO_Init函数

对应相应的GPIO的框图来理解将更加直观有效,如下图:在这里插入图片描述
关于GPIO的内部结构介绍。一共有八种模式,分别是上拉输入,下拉输入,浮空输入,模拟输入。同时又有推挽输出,开漏输出,复用推挽输出,复用开漏输出。其中上拉下拉浮空输入都和上下拉电阻有关,模拟输入用来测量外部模拟量。推挽输出强力的控制输出的高低电平。
开漏模式:N—MOS工作,P—MOS无效,数据寄存器为1时,下管断开,这是输出相当于断开,也就是高阻模式,数据寄存器为0时,下管导通,输出直接接到VSS,也就是输出低电平。这种模式下,只有低电平有驱动能力,高电平没有驱动能力。开漏模式可以作为通信协议的驱动方式,比如i2C的通信引脚就是使用的开漏模式,在多机通信的模式下,这个模式可以避免各个设备的相互干扰,另外开漏模式还可以用来输出5V的电平信号,在IO口外接一个上拉到5V的电阻,当输出低电平时,有内部的N—MOS直接接VSS,当输出高电平时,由外部的上拉电阻上拉到5V,这样就可以输出5V的电平信号,兼容5V的设备,注意,此时N—MOS,P—MOS都无效。
关闭模式,就是当引脚配置为输入模式的时候,此时N—MOS,P—MOS都无效。
配置为复用输出模式的时候,引脚的高低电平由片上的外设控制。

总结:GPIO的配置首先需要开启时钟,同时参数由引脚号,工作模式和输出输入速度组成,配置完这些参数后传递给结构体初始化函数来完成GPIO的初始化,结构体初始化函数会把这些参数传递到相应的寄存器保存下来。以备后用。同时位置设置寄存器,输出数据寄存器,输入数据寄存器负责数据的读出和写入。


http://www.kler.cn/a/571745.html

相关文章:

  • 记录:页面下载为png和pdf
  • 【考研说】2025年研考上岸复试指南(地理学/测绘/遥感等)
  • 【零基础到精通Java合集】第十五集:Map集合框架与泛型
  • YK人工智能(九)——大语言模型微调介绍
  • 3D手眼标定转换详细实施步骤及原理概述
  • 【第13节】C++设计模式(行为模式)-Template(模板)模式
  • CogVLM: Visual Expert for Pretrained Language Models 简读
  • AI 大模型本身的(自己的)(如 GPT、BERT 等)的自动化测试
  • 我的AI工具箱Tauri版-通用音频转文本
  • JavaWeb后端基础(4)
  • Rust~String、str、str、String、Box<str> 或 Box<str>
  • FastGPT 引申:常见 Rerank 实现方案
  • 知识篇 | 低代码开发(Low-Code Development)是个什么东东?
  • 第40天:安全开发-JavaEE应用SpringBoot框架JWT身份鉴权打包部署JARWAR
  • Stiring-PDF:开源免费的PDF文件处理软件
  • Vue路由器的工作模式
  • PPT 小黑第34套
  • Metal学习笔记目录
  • DFT之SSN架构
  • 备赛蓝桥杯之第十五届职业院校组省赛第五题:悠然画境