对STM32的GPIO认识

STM32的特性及如何学习

STM32F1系列均集成了Cortex-M3内核(所谓内核就是指传统意义上的中央处理单元(CPU),包含运算器、控制器和总线阵列)。它相对于普通的8/16位机有更多的片上外设,更先进的内核架构,可以运行uC/OS等实时操作系统,相对于可运行Linux操作系统的高端CPU,其成本低,实时性强。
1。定时器 ,STM32的定时器外设功能非常强大。可分为基本定时器、通用定时器以及高级定时器,且均为16位。这些定时器使得STM32具有定时、信号的频率测量、信号的PWM测量、PWM输出、三相6步电机控制及编码器接口等功能。
2.中断,可分为内核异常和外部中断,因其中断系统比较复杂,所以在内核中有一个专门管理中断的控制器:NVIC.
注意:NVIC负责除了SYSTICK之外的所有中断的控制,十分重要!

GPIO的认识

GPIO(General Purpose Input/Output),STM32的IO口与5系列单片的IO口有着很大的不同。例如,51系列单片机IO口可作为输入输出双向口,而STTM32则有所不同。
1.内部结构在这里插入图片描述
如上图所示,每个GPIO端口具有上输入和输出两个通道,对于输入通道而言,还具有模拟输入与复用功能输入通道;而对于输出通道而言,其具有复用功能输出通道。并且上图表明,GPIO端口也可作为数字输入/输出口,通过读输入数据寄存器读入外部端口的输入数字电平信号,通过写置位/清零寄存器和输出数据寄存器向端口输出数字电平信号,并且可读出“输出数据寄存器”中的数字信号。
由上图中的3个开关和输出控制可知,GPIO端口具有以下工作模式;
(1).浮空输入模式(GPIO_Mode_IN_FLOATING),上下拉电阻禁止,即在芯片内部既没有接上拉,也没有接下拉电阻,经由施密特触发器输入。在此模式下,其输入阻抗较大,故一般用于标准的通信协议如IIC\USART的接受端。
(2).上拉输入(GPIO_Mode_IPU),上拉电阻使能,下拉电阻禁止。在此模式下,默认状态下(GPIO引脚无输入),读取得的GPIO引脚数据为1,高电平。
(3).下拉输入(GPIO_Mode_IPD),此模式的工作原理与上拉输入相反。
(4).模拟输入(GPIO_Mode_AIN),此模式下,3个开关均禁止,即关闭施密特触发器,不接上、下拉电阻,经由另一线路把电压信号传送到片上外设模块。如ADC模块。
(5).开漏输出(GPIO_Mode_Out_OD),(当输出高电平时,输出控制关闭P-MOS和N-MOS管;当输出低电平时,输入控制关闭P-MOS管并打开N-MOS),在此模式下,上方的P-MOS不工作。如需要输出5伏的高电平,则需要在外部接一个上拉电阻,电源为5伏。
(6).推挽输出(GPIO_Mode_Out_PP),(当输出高电平时,输出控制打开P-MOS,关闭N-MOS管;当输出低电平时,输出控制关闭P-MOS管并打开N-MOS)应用于输出电平为0和3.3伏的场合。
(7).复用开漏输出(GPIO_Mode_AF_OD),根据GPIO的复用功能来选择,其原理与开漏输出一样。
(8).复用推挽输出(GPIO_Mode_AF_PP),根据GPIO的复用功能来选择,其原理与推挽输出一样
注意:
1.当把GPIO用作EXTI外部中断或者使用重映射功能的时候,必须开启AFIO时钟,而在使用默认复用功能的时候,就不必开启AFIO时钟了。
2.在开漏模式时,对输入数据寄存器的读访问可得到I/O状态;即可以像51单片机一样实现双向IO的功能,就可输入也可输出。
2.GPIO的寄存器
每个GPIO口具有7个寄存器,即2个32位的配置寄存器(GPIOx_CRL和GPIOx_CRH)、2个32位的数据寄存器(GPIOx_ODR和GPIOx_IDR)、1个32位的置位/清零寄存器(GPIOx_BSRR)、1个16位的清零寄存器(GPIOx_BRR)和1个32位的配置锁定寄存器(GPIOx_LCKR).

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值