stm32f407VG gpio详解

stm32f407VG 这款单片机上共有PA‐PE 共5×16 共80 个复用IO 口,每个通用I / O 端口有4个32 位配置寄存器GPIOx_MODERGPIOx_OTYPERGPIOx_OSPEEDRGPIOx_PUPDR),2个32 位数据寄存器(GPIOx_IDR 和GPIOx_ODR),一个32 位的置位/复位寄存器GPIOx_BSRR),32位锁定寄存器(GPIOx_LCKR)和两个32 位的备用功能选择寄存器(GPIOx_AFRH,GPIOx_AFRL)。

4 个32配置寄存器

GPIOx_MODER:(输入输出模式选择)

 原文(select the I/Odirection (input,output,AF,analog).)

功能

Input: 输入模式

output:输出模式

AF   : 备用功能模式

analog:模拟模式

GPIOx_OTYPER      (gpio输出类型)

原文pushpull or  open-drain 

GPIO_OType_PP = 0x00,                       推完输出

    GPIO_OType_OD = 0x01                           开漏输出

GPIOx_OSPEEDR:(输出速度寄存器)

原文

The I/O speed pins are directlyconnected to the

corresponding GPIOx_OSPEEDR register bits whatever theI/O direction

GPIO_Speed_2MHz           选择Io输出频率

  GPIO_Speed_25MHz  

 GPIO_Speed_50MHz

  GPIO_Speed_100MHz

:如果输出速度>=50M,开启补偿单元

GPIOx_PUPDR:(上拉下拉寄存器)

原文功能

used to select the pull-up/pull-down whatever the I/Odirection

GPIO_PuPd_NOPULL= 0x00,      不拉

  GPIO_PuPd_UP     =  0x01,    上拉

 GPIO_PuPd_DOWN   = 0x02     下拉

 

2个32 位数据寄存器

I/O port data registers

原文

GPIOx_ODR stores the data to be output, it is read/write

accessible. The data inputthrough the I/O are stored into the input data register

GPIOx_ODR 输出数据寄存器

该寄存器只可以读取和写入

 

(GPIOx_IDR), a read-only register.

GPIOx_IDR  输入数据寄存器

寄存器只可以读取可以位读取,包含相应i/o端口的值

GPIOx_BSRR 32位寄存器

BSRRL 16位寄存器给其赋值1置位给相应的 GPIOx_ODR 置1

BSRRH16位寄存器给其赋值1置位给相应的 GPIOx_ODR 置0

原文

When written to 1, bit BSRR(i)BSRRL】setsthe correspondingODR(i) bit. When

written to 1, bit BSRR(i+SIZE)【BSRRH resets the ODR(i)corresponding bit.

GPIOx_LCKR           32位锁定寄存器

 

 

 

GPIOx_LCKR                 备用锁定寄存器

 

 

 GPIO设置步骤:
1. 使能相关时钟
2. 设置相应的 IO 口为输入或输出
3. 设置输入\输出的类型
4. 设置输出的速度(如果设置为输入,此步跳过)
5. 如果输出速度>=50M,开启补偿单元
6. 设置上拉下拉寄存器
7. 通过复位置位寄存器和输入输出数据寄存器进行操作。

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值