- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32F4 (正点原⼦)学习笔记(⼀):GPIO及其⼩实验
⽬录
⼀、写在前⾯:
之前上过嵌⼊式的课程,也曾⽤rt1052/64把别⼈的程序编编改改,但对于单⽚机的理解仅停留在胎教的阶段。此次利⽤⽼师给的
stm32f4(探索者)开发板,对单⽚机进⾏⼀个全⾯的学习。
该⽂章为学习笔记,内容主要来⾃《Cortex M3与M4权威指南》、《STM32F4xx中⽂参考⼿册》、《STM32F4开发指南-寄存器
版本_V1.2》、《STM32F4开发指南-库函数版本_V1.2》、正点原⼦的教学视频及⽹络。环境选择Keil uVision5。
由于我编程和模电⽔平确实较差,望⼤家多批评指正了
⼆、 GPIO基本情况
1.概述
GPIO(General-purpose input/output),通⽤型输⼊输出的简称。既然⼀个引脚可以⽤于输⼊、输出或其他特殊功能,那么⼀定
有寄存器⽤来选择这些功能。对于输⼊,⼀定可以通过读取某个寄存器来确定引脚电位的⾼低;对于输出,⼀定可以通过写⼊某个寄存器来
让这个引脚输出⾼电位或者低电位;⽽对于其他特殊功能,则有另外的寄存器来控制它们。
2.引脚说明
①⼀共有7组IO⼝:GPIOA—GPIOG
②每组IO⼝有16个IO:GPIOA_0—GPIOA_15
③⼀共7*16=112个IO
④所有IO⼝都可以作为中断输⼊
3.GPIO⼯作⽅式
图1、2 5V容忍I/O端⼝位的基本结构
(1)4种输⼊模式
①输⼊浮空(input floating)
逻辑器件与引脚即不接⾼电平,也不接低电平,电压不确定
②输⼊上拉(input pull-up)
将不确定的信号通过⼀个电阻嵌位在⾼电平,上拉电阻同时可起到限流作⽤,IO⼝的常态为⾼电平
③输⼊下拉(input pull-down)
把电压拉低到GND,IO⼝的常态为低电平
④模拟功能(analog)
关闭施密特触发器,将电压信号传送到⽚上外设模块,不接上下拉电阻
(2)4种输出模式
①带上拉或下拉的开漏输出(output open-drain)
相当于三极管的集电极
开漏输出只可以输出强低电平 ,⾼电平靠外部电阻拉⾼
利⽤外部电路的驱动能⼒,减少IC(integrated circuit)内部的驱动。驱动电流从外部的VCC流出,IC内部仅需很⼩的栅极
驱动电流
②带上拉或下拉的开漏复⽤功能(alternate function open-drain)
可同时当作普通GPIO及内部外设(⽚上外设)控制器的引脚来使⽤
I/O引脚通过⼀个复⽤器连接到板载外设,该复⽤器⼀次仅允许⼀个外设的复⽤功能(AF)连接到I/O引脚,确保共⽤同⼀个
I/O引脚的外设之间不会发⽣冲突
③带上拉或下拉的推挽输出(output push-pull)
推挽输出可输出强⾼低电平,连接数字器件。
推挽结构⼀般指两个三极管分别受两互补信号的控制,总是⼀个导通⼀个截⽌
推挽电路是两个参数⼀样的三极管以推挽形式置于电路中,每次只有⼀个导通,导通功耗⼩、效率⾼。输出即可向负载灌电
流,也可从负载抽取电流。因此可提⾼电路的负载能⼒以及开关速度。
④带上拉或下拉的推挽复⽤功能(alternate function push-pull)
同②
关于推挽输出和开漏输出可⽤图3来概括:
图3 左为推挽、右为开漏
(3)4种最⼤输出速度
2MHz / 25MHz / 50MHz / 100MHz
(4)主要特性
受控 I/O 多达 16 个
输出状态:推挽或开漏 + 上拉/下拉
文档评论(0)