OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5823|回复: 9

请问外部SRAM里面配置IO时,引脚为啥是0XFF33、0XFF83?

[复制链接]

25

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2022-11-1
在线时间
53 小时
发表于 2023-3-9 14:30:24 | 显示全部楼层 |阅读模式
1金钱
请问外部SRAM里面配置IO时,引脚为啥是0XFF33、0XFF83
  1. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOF|RCC_APB2Periph_GPIOG,ENABLE);
  2.           RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC,ENABLE);
  3.   
  4.         GPIO_InitStructure.GPIO_Pin = 0xFF33;                                  //PORTD复用推挽输出
  5.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                  //复用推挽输出
  6.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  7.         GPIO_Init(GPIOD, &GPIO_InitStructure);


  8.         GPIO_InitStructure.GPIO_Pin = 0xFF83;                                  //PORTE复用推挽输出
  9.         GPIO_Init(GPIOE, &GPIO_InitStructure);

  10.         GPIO_InitStructure.GPIO_Pin = 0xF03F;                                  //PORTD复用推挽输出
  11.         GPIO_Init(GPIOF, &GPIO_InitStructure);

  12.         GPIO_InitStructure.GPIO_Pin = 0x043F;                                  //PORTD复用推挽输出
  13.         GPIO_Init(GPIOG, &GPIO_InitStructure);
复制代码

?

最佳答案

查看完整内容[请看2#楼]

想明白就看GPIO_Init这个函数里面都干了啥 库函数把每个引脚都以一位数进行定义 16个引脚刚好用一个短整型的数表示了 这是gpio的.h文件定义 #define GPIO_Pin_0 ((uint16_t)0x0001) /*!< Pin 0 selected */ #define GPIO_Pin_1 ((uint16_t)0x0002) /*!< Pin 1 selected */ #define GPIO_Pin_2 ((uint16_t)0x0004) /*!< Pin 2 selected */ #define GPIO_Pin_3 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2676
金钱
2676
注册时间
2018-11-8
在线时间
431 小时
发表于 2023-3-9 14:30:25 | 显示全部楼层
wsh15249375668 发表于 2023-3-10 10:06
啊,我意思
就是为啥PD的第15~第9、第5、第4、第1、第0个引脚同时被选中,就是0XFF,请问这个是怎么来的 ...

想明白就看GPIO_Init这个函数里面都干了啥
库函数把每个引脚都以一位数进行定义 16个引脚刚好用一个短整型的数表示了
这是gpio的.h文件定义
#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
#define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
#define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
#define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
#define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
#define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
#define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
#define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
#define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
#define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
#define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
#define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
#define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
#define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
#define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
#define GPIO_Pin_All               ((uint16_t)0xFFFF)  /*!< All pins selected */

所以FF33就是我说的那些脚同时被选中 FFFF就是全选中
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2676
金钱
2676
注册时间
2018-11-8
在线时间
431 小时
发表于 2023-3-9 14:47:52 | 显示全部楼层
FF33
就是PD的第15~第9、第5、第4、第1、第0个引脚同时被选中
如果按照传统方法 一个引脚就要配置一次 用这个方法一口气都配了
回复

使用道具 举报

25

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2022-11-1
在线时间
53 小时
 楼主| 发表于 2023-3-9 15:56:31 | 显示全部楼层
babyrabbit 发表于 2023-3-9 14:47
FF33
就是PD的第15~第9、第5、第4、第1、第0个引脚同时被选中
如果按照传统方法 一个引脚就要配置一次 用 ...

我知道是这个意思,请问这是怎么选的?
回复

使用道具 举报

16

主题

426

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2676
金钱
2676
注册时间
2018-11-8
在线时间
431 小时
发表于 2023-3-9 20:31:59 | 显示全部楼层
wsh15249375668 发表于 2023-3-9 15:56
我知道是这个意思,请问这是怎么选的?

啥意思?你的SRAM用到哪些引脚就选哪些啊
回复

使用道具 举报

3

主题

800

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3775
金钱
3775
注册时间
2017-3-7
在线时间
1645 小时
发表于 2023-3-10 09:49:50 | 显示全部楼层
可以看数据手册
回复

使用道具 举报

25

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2022-11-1
在线时间
53 小时
 楼主| 发表于 2023-3-10 10:06:15 | 显示全部楼层
babyrabbit 发表于 2023-3-9 20:31
啥意思?你的SRAM用到哪些引脚就选哪些啊

啊,我意思
就是为啥PD的第15~第9、第5、第4、第1、第0个引脚同时被选中,就是0XFF,请问这个是怎么来的啊
回复

使用道具 举报

25

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2022-11-1
在线时间
53 小时
 楼主| 发表于 2023-3-10 11:10:13 | 显示全部楼层

请问哪部分手册里有这个内容
回复

使用道具 举报

3

主题

800

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3775
金钱
3775
注册时间
2017-3-7
在线时间
1645 小时
发表于 2023-3-10 11:35:00 | 显示全部楼层
wsh15249375668 发表于 2023-3-10 11:10
请问哪部分手册里有这个内容

stm32的芯片手册啊,寄存器每个位的意义
回复

使用道具 举报

25

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
269
金钱
269
注册时间
2022-11-1
在线时间
53 小时
 楼主| 发表于 2023-3-10 14:17:50 | 显示全部楼层
babyrabbit 发表于 2023-3-10 11:09
想明白就看GPIO_Init这个函数里面都干了啥
库函数把每个引脚都以一位数进行定义 16个引脚刚好用一个短整 ...

懂了,谢谢老哥
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 14:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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