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

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的初始化,结构体初始化函数会把这些参数传递到相应的寄存器保存下来。以备后用。同时位置设置寄存器,输出数据寄存器,输入数据寄存器负责数据的读出和写入。

相关文章:

  • 记录linux安装mysql后链接不上的解决方法
  • 代码随想录算法训练营第三十九天|01背包问题 二维、 01背包问题 一维、416. 分割等和子集
  • 通往 AI 之路:Python 机器学习入门-概率与统计
  • 计算机毕业设计SpringBoot+Vue.js乐享田园系统(源码+文档+PPT+讲解)
  • 大模型时代下的数据标注革命:工具、挑战与未来趋势
  • Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化
  • 测试人员如何更好的跟踪BUG
  • 【C++】2.2.2 变量声明和定义的关系
  • devDependencies和dependencies的区别
  • 12、算法
  • 实时语义分割之FarSeeNet(2020)模型解析代码复现及滑坡检测实战
  • Linux----网络通信
  • WPS AI+office-ai的安装、使用
  • Linux查看TP6 command定时任务并重启
  • 一、Prometheus架构
  • table 拖拽移动
  • 广域互联网关键技术详解(GRE/LSTP/IPsec/NAT/SAC/SPR)
  • 文件上传复现
  • Office 2021 Mac Office办公
  • 【银河麒麟高级服务器操作系统实际案例分享】数据库资源重启现象分析及处理全过程
  • 模板形的网站制作/看颜色应该搜索哪些词汇
  • 旅游网站建设色彩搭配表/seo搜索引擎优化名词解释
  • 上海市建设网站/百度引流推广怎么收费
  • 宣传京津风筝网站的建设目的/新产品如何快速推广市场
  • 做网站和易语言/lol关键词查询
  • 网站免费推广方式/百度售后电话人工服务