摘要
stm32系列产品是我们最常用的单片机之一,虽然版本号不同,但开发方式基本相同。本章将详细介绍GPIO脚位的应用函数库,填补你的知识空白。这是我多年学习的总结,希望能帮助你更好地理解。
正文
stm32开发设计手记(二):stm32系列产品应用V3.5固定件库的帮助文件及其GPIO基本要素(一)
序言
stm32系列产品是最常见的单片机设计之一,不一样的版本号相匹配除开脚位、外接设备、頻率、容积等’不一样以外,其开发设计的方式 是一样的。
此章解读应用函数库应用GPIO脚位作用。
填补
本文章内容为很多年前学习的方法汇总,基本上是一通百通(PS:学的是方式 而不是技术性自身)。
stm32系列产品帮助文件GPIO从零详尽讲解
撰写GPIO作用,提议新手学习培训帮助文件中的实例。
它是固定件库V3.4中的GPIO源代码,而V3.5中的資源文档应用的并不是固定件库,V3.4这一文档显著是GPIO实际操作LED的,因此自己觉得该是V3.5的固定件库的.chm帮助文件有什么问题,V3.5的一部分编码截屏以下:
能够看得出,其涵数体压根沒有应用固定件库,只是应用存储器,随后大家这一源代码一部分应用V3.4版本号的固定件库做为参照,再次往下沉:
再点一下
看编码,随后大家跟随编码来详尽看全部文档,大家无论注解。
00022行是固定件库头文件,而00023行是官方网评定板的头文件,这一对大家肯定是无需的,是与应用的实际的硬件配置界定相关的宏定义,再次往下沉
00037行是界定GPIO复位的建筑结构,要实际操作一切外接设备都得先过它复位
00040行是延迟时间涵数
00049行进到主函数,也是程序流程逐渐实行的通道,留意看注解,数字时钟早已根据运行文档中启用SystemInit()涵数配备好(在未配备固定件库时,只加上运行编码和main涵数,会出错沒有界定SystemInit涵数,这就很好的表述了这里为什么没有配备数字时钟,详尽掌握请查询QQ21497936室内空间中STM32初学者难题解决方案),再次往下看
(留意:这一注解,这一注解的意思是将端口号所有复位成仿真模拟键入方式,那样能够降低耗电量及其提升硬件配置的抗干扰能力能)
00061,00062,00063行是也就能外接设备GPIOA,GPIOB,GPIOC,GPIOD,GPIOE的外接设备数字时钟。
00065行是选定全部脚位(脚位0至脚位15)
00066行是I/O方式为仿真模拟键入
00076行到00082行中间,当界定了宏STM3210E_EVAL或是USE_STM32100E_EVAL则将端口号GPIOF,GPIOG也复位,我们可以分辨这两个宏是官方网配套设施的评定板上才有的F端口号和G端口号,其用的脚位最少144脚位及之上的集成ic。
这个是配套设施版复位的LED1,LED2,LED3,LED4那样我们可以分辨,这一涵数是复位特定端口号的一个脚位,对于是哪个脚位毫无疑问在评定板头文件有有关的宏定义,那麼大家深层次先启开STM_EVAL_LEDInit这一涵数,查询它的源码
跟大家以前预期的一样,界定一个建筑结构,也就能外接设备,特定脚位,推挽输出,50MHz的頻率,复位;对于Led_TypeDef这一构造和GPIO_CLK,GPIO_PORT应全是与评定板相关的宏定义。大家关注的关键取决于申明建筑结构,也就能数字时钟,配备脚位,随后复位,大家或是把单片机开发板这一宏定义截屏出去,有利于大伙儿了解,大家搜索一次LED1界定,讨论一下LED1是哪个端口号的哪一个脚位,是怎样进行配备的
LED1宏的具体数值0;
LED1带到LEDn,具体数值0,c语言数组,则GPIO_CLK[LED1]事实上是LED1_GPIO_CLK,
它的宏定义为C端口,大家再看一下脚位:
GPIO_PIN[LED1]具体为GPIO_PIN [0],其宏定义为GPIO_Pin_6(注:联络到固定件库本本身的宏定义了)
GPIO_PORT[LED1]具体为LED_GPIO_PORT宏,界定以下
那麼便是端口号C,因此这一段编码便是端口号C也就能,配备脚位6为推挽输出,随后复位。
LED1,LED2,LED3,LED4在评定板的头文件有关宏定义以下:
00090-00115是与评定板有关的LED灯实际操作,开LED1,延迟时间,开LED2,开LED3,关LED1,延迟时间,开LED4,关LED2,关LED3延迟时间,关LED4,这一程序流程就持续这一循环体
00123-00126是延迟时间涵数的涵数体
这一事例文档便说到这里,详细说明了一般IO口的设定全过程,全过程汇总以下:
-
(可选流程):都设成仿真模拟键入,减少耗能和提升抗EMC/EMI等
-
流程二:也就能端口号的外接设备数字时钟
-
流程三:建筑结构自变量配备端口号的基本信息(端口号脚位,端口号方式,端口号頻率)
-
流程四:复位端口号
-
流程五:能够对端口号开展I/O的实际操作。
上一篇:《stm32开发笔记(一):库函数V3.5版本环境搭建以及工程模版配置》
下一篇:**敬请关注…
若通篇为原创文章内容,转截请标明全文来源
本文章内容博客地址:https://blog.csdn.net/qq21497936/article/details/117085167
关注不迷路
扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!
评论0