硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2514|回复: 3
收起左侧

[FMC] FMC总线扩展32路高速IO理解成GPIO的ODR寄存器就很简单了,其实就是一个东西

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2019-3-21 10:57:20 | 显示全部楼层 |阅读模式
以我们V7为例,FMC扩展IO是对地址0x60001000的32bit数据空间的0和1的操作。

GPIOA的ODR寄存器是对地址  0x40000000 + 0x18020000 +  0x14 空间的操作,但只能操作16个引脚。

使用总线的优势就在这里了,相当于在GPIOA到GPIOK的基础上,又扩展出GPIOL和GPIOM



#define PERIPH_BASE                  ((uint32_t)0x40000000)
#define D3_AHB1PERIPH_BASE     (PERIPH_BASE + 0x18020000)
#define GPIOA_BASE                   (D3_AHB1PERIPH_BASE + 0x0000)
#define GPIOA                            ((GPIO_TypeDef *) GPIOA_BASE)

/**
  * @brief General Purpose I/O
  */

typedef struct
{
  __IO uint32_t MODER;    /*!< GPIO port mode register,               Address offset: 0x00      */
  __IO uint32_t OTYPER;   /*!< GPIO port output type register,        Address offset: 0x04      */
  __IO uint32_t OSPEEDR;  /*!< GPIO port output speed register,       Address offset: 0x08      */
  __IO uint32_t PUPDR;    /*!< GPIO port pull-up/pull-down register,  Address offset: 0x0C      */
  __IO uint32_t IDR;      /*!< GPIO port input data register,         Address offset: 0x10      */
  __IO uint32_t ODR;      /*!< GPIO port output data register,        Address offset: 0x14      */
  __IO uint16_t BSRRL;    /*!< GPIO port bit set/reset low register,  Address offset: 0x18      */
  __IO uint16_t BSRRH;    /*!< GPIO port bit set/reset high register, Address offset: 0x1A      */
  __IO uint32_t LCKR;     /*!< GPIO port configuration lock register, Address offset: 0x1C      */
  __IO uint32_t AFR[2];   /*!< GPIO alternate function registers,     Address offset: 0x20-0x24 */
} GPIO_TypeDef;

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
 楼主| 发表于 2019-3-21 11:02:54 | 显示全部楼层
【已更新】STM32H7使用FMC扩展32路高速IO教程(2019-03-15)
http://www.armbbs.cn/forum.php?m ... 1667&fromuid=58
(出处: 安富莱电子论坛)
回复

使用道具 举报

610

主题

3051

回帖

4901

积分

至尊会员

积分
4901
发表于 2019-3-21 11:25:54 | 显示全部楼层
eric2013 发表于 2019-3-21 11:02
【已更新】STM32H7使用FMC扩展32路高速IO教程(2019-03-15)
http://www.armbbs.cn/forum.php?mod=view ...

研究的很高深啦
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2019-3-21 15:35:17 | 显示全部楼层
论Memory Map内存映射的重要性。
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 22:08 , Processed in 0.231102 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表