stm32f10x中GPIO的原理及使用

GPIO的输入工作模式:

8种工作模式

1。输入浮空模式。可以直接读取引脚高低电平的值。

2. 输入上拉模式。只有多了一个30-50k上拉电阻,可以读电压

3. 输入下拉模式。接入一个一拉电阻。 cpu可以读电压

 4. 模拟模式,输入0-3.3V,模拟转数字

 5。开漏输出模式。可由外部或内部决定引脚电平。

 6。开漏复用输出模式。利用复用功能决定。

7.推挽输出,可以输出强高电平,即使端口在初始化时让它为推挽输出就可以输出高电平。可以记忆:把电平往上推,推高---高电平。开漏--漏电了,没了即低电平,强低电平。

 8。推挽复用输出模式

 

 

STM32GPIO端口配置

每组GPIO端口的寄存器包括:

两个32位配置寄存器(GPIOx_CRL GPIOx_CRH)

两个32位数据寄存器 (GPIOx_IDRGPIOx_ODR)

一个32位置位/ 复位寄存器(GPIOx_BSRR)

一个16位复位寄存器(GPIOx_BRR)

一个32位锁定寄存器(GPIOx_LCKR)

每个I/O端口位可以自由编程,然而I/O端口寄存器必须按32位字被访问(不允许半字或字节访问)

是每组IO口含下面7个寄存器。也就是7个寄存器,

一共可以控制一组GPIO16IO

-  GPIOx_CRL :端口配置低寄存器

        - GPIOx_CRH:端口配置高寄存器

        - GPIOx_IDR:端口输入寄存器

        - GPIOx_ODR:端口输出寄存器

        - GPIOx_BSRR:端口位设置/清除寄存器

        - GPIOx_BRR :端口位清除寄存器

        - GPIOx_LCKR:端口配置锁存寄存器

 CRH:8——15

端口输入数据寄存器(GPIOx_IDR)读端口电平,一个位得到一个口的端口电平

端口输出数据寄存器(GPIOx_ODR)

 设置位为1的话,对应端口高电平 ;设置位为0,则端口低电平。

还可以通过ODR确定是上拉还是下拉,就是给那个端口给高电平还是低电平。0为下拉,1为上拉。

 

  端口位设置/清除寄存器(GPIOx_BSRR)

 也是用来配置端口高电平还是低电平。好处:可以直接让某个端口输出为1的电平,其他为0,此时为0的不会影响到先前的电平状态。而ODR设置为0时会使电平为0。高位时相反(一般先ODR读端口,然后通过BSRR改)

 端口位设置/清除寄存器(GPIOx_BRR)

 和BSRR的高位是一样的。经常用BSRR低16位,再用BRR的低16位,而不用BSRR的高16位。

 下面可能是stm32f103ze独有知识

u 端口复用功能

   STM32的大部分端口都具有复用功能。

   所谓复用,就是一些端口不仅仅可以做为通用IO口,还可以复用为一

   些外设引脚,比如PA9,PA10可以复用为STM32的串口1引脚。

  作用:最大限度的利用端口资源

PA9、PA10复用为串口。

u 端口重映射功能

   就是可以把某些功能引脚映射到其他引脚。

   比如串口1默认引脚是PA9,PA10可以通过配置重映射映

    射到PB6,PB7

   作用:方便布线

stm32r的所有IO口都可以作为中断输入

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值