STM32入门系列-GPIO工作模式及LED电路原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
STM32⼊门系列-GPIO⼯作模式及LED电路原理
GPIO⼯作模式
由于GPIO内部的结构关系,决定了GPIO可配置成以下⼏种模式。
输⼊模式
在输⼊模式时,施密特触发器打开,输出被禁⽌。
可通过输⼊数据寄存器GPIOx_IDR读取I/O状态。
输⼊模式可以配置为模拟、上拉、下拉以及浮空模式。
上拉和下拉输⼊很好理解,默认的电平由上拉或者下拉决定。
浮空输⼊的电平是不确定的,完全由外部的输⼊决定,⼀般接按键的时候可以使⽤这个模式。
模拟输⼊则⽤于 ADC 采集。
输出模式(推挽/开漏)
在输出模式中,推挽模式时双MOS管以推挽⽅式⼯作,输出数据寄存器GPIOx_ODR可控制I/O输出⾼低电平。
开漏模式时,只有N-MOS 管⼯作,输出数据寄存器可控制I/O输出⾼阻态或低电平。
输出速度可配置,有2、25、50MHz的选项。
此处的输出速度即I/O⽀持的⾼低电平状态最⾼切换频率,⽀持的频率越⾼,功耗越⼤,如果功耗要求不严格,把速度设置成最⼤即可。
在输出模式时,施密特触发器是打开的,即输⼊可⽤,通过输⼊数据寄存器GPIOx_IDR可读取I/O的实际状态。
复⽤功能(推挽/开漏)
复⽤功能模式中,输出使能,输出速度可配置,可⼯作在开漏及推挽模式,但是输出信号源于其它外设,输出数据寄存器 GPIOx_ODR ⽆效;输⼊可⽤,通过输⼊数据寄存器可获取 I/O 实际状态,但⼀般直接⽤外设的寄存器来获取该数据信号。
模拟输⼊输出(上下拉⽆影响)
模拟输⼊输出模式中,双MOS管结构被关闭,施密特触发器停⽤,上/下拉也被禁⽌。
其它外设通过模拟通道进⾏输⼊输出。
通过对GPIO 寄存器写⼊不同的参数,就可以改变GPIO的应⽤模式,再强调⼀下,要了解具体寄存器时⼀定要查阅《STM32F1xx 参考⼿册》中对应外设的寄存器说明。
在GPIO外设中,通过设置“端⼝配置寄存器GPIOx_CRL和GPIOx_CRH”可配置GPIO的⼯作模式和输出速度。
CRH控制端⼝的⾼⼋位,CRL控制端⼝的低⼋位。
STM32F1xx的LED电路
开发板上LED电路图如下图所⽰。
相同⽹络标号表⽰它们是连接在⼀起的,因此D1-D8发光⼆极管阴极是连接在STM32的PC0-PC7管脚上。
如果要使D1指⽰灯亮,只需要控制PC0管脚输出低电平,如果要使D1指⽰灯灭,只需控制PC0输出⾼电平。
对于其他的LED控制⽅法⼀样。
如果使⽤的是其他板⼦,连接LED的管脚和极性不⼀样,那么只需要在程序中修改对应的GPIO管脚和输出电平状态就可以,原理是⼀样的。
要点亮D1发光⼆极管,让STM32的PC0管脚输出⼀个低电平即可。