OpenEdv-开源电子网

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

简单问题,stm32的寄存器与端口编号对照关系

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2023-3-26
在线时间
2 小时
发表于 2023-3-26 17:44:32 | 显示全部楼层 |阅读模式
1金钱

简单问题,stm32的寄存器与端口编号对照关系

以STM32 f429 为例

如果要使一个端口,比如我要87脚输出低电平

先查stm32 f29的数据手册引脚定义,见下图,87脚就是PH10


1679752535693.png


然后 我看教程说 :可以设置 寄存器GPIOH_ODR的第10位,就可以控制端口PH10。下面是GPIOH_ODR的在数据手册的截图,但是我认为,从这两个地方看,没说明 这个GPIOH_ODR寄存器可以控制PH10引脚啊,


问:在数据手册和参考手册的哪个地方可以查到,寄存器名字与端口编号的对照关系


729607357976126.png
1679753009442(1).jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

2130

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4724
金钱
4724
注册时间
2015-1-10
在线时间
590 小时
发表于 2023-3-27 11:16:36 | 显示全部楼层
???那你的理解GPIOH_ODR里面那16位是用来干嘛的呢
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2023-3-26
在线时间
2 小时
 楼主| 发表于 2023-3-28 19:41:11 | 显示全部楼层
本帖最后由 a1553289838 于 2023-3-28 19:44 编辑
阿侑kevin 发表于 2023-3-27 11:16
???那你的理解GPIOH_ODR里面那16位是用来干嘛的呢

我明白这16位是用来控制I/O的,但是IC上面有这么多引脚,我怎么可以知道GPIOH_ODR的第十位是控制PH10这个引脚的,除了H对上了,我看不出其他关联,IC上也有可能出现其他类型I/O,他们的名字可能是HP10、AH10、BH10,没有对照,我应该到哪里查这个对应关系。
回复

使用道具 举报

11

主题

2130

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4724
金钱
4724
注册时间
2015-1-10
在线时间
590 小时
发表于 2023-3-29 16:34:23 | 显示全部楼层
a1553289838 发表于 2023-3-28 19:41
我明白这16位是用来控制I/O的,但是IC上面有这么多引脚,我怎么可以知道GPIOH_ODR的第十位是控制PH10这个 ...

那你看对应的user manual,ST之类的芯片都是PA,PB,PC这么定义的,不存在PAH这种
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2023-3-31 00:49:43 | 显示全部楼层
a1553289838 发表于 2023-3-28 19:41
我明白这16位是用来控制I/O的,但是IC上面有这么多引脚,我怎么可以知道GPIOH_ODR的第十位是控制PH10这个 ...

这是乌龟的屁股,规定啊。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2023-3-26
在线时间
2 小时
 楼主| 发表于 2023-4-1 14:27:55 | 显示全部楼层
正点原子 发表于 2023-3-31 00:49
这是乌龟的屁股,规定啊。。。

我想知道这个规定在规格书的什么地方的,这个规定这次这个型号你告诉了我,下次我用其他型号的stm32芯片的时候,或者用其他芯片的时候我就不知道了
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2023-4-3 14:21:09 | 显示全部楼层
a1553289838 发表于 2023-3-28 19:41
我明白这16位是用来控制I/O的,但是IC上面有这么多引脚,我怎么可以知道GPIOH_ODR的第十位是控制PH10这个 ...

P是Port端口的意思  他们的类型区分就是 ABCDEFG 你怎么会想到 HP10 AH10 BH10这种...连规定都要去琢磨 哪学的累死你
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2023-4-4 01:00:55 | 显示全部楼层
a1553289838 发表于 2023-4-1 14:27
我想知道这个规定在规格书的什么地方的,这个规定这次这个型号你告诉了我,下次我用其他型号的stm32芯片 ...

你可以email问厂家。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2020-3-13
在线时间
24 小时
发表于 2023-5-11 15:12:50 | 显示全部楼层
正点原子 发表于 2023-4-4 01:00
你可以email问厂家。。。

原子哥,考虑开一个G4专区吗?
回复

使用道具 举报

4

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1760
金钱
1760
注册时间
2017-6-23
在线时间
172 小时
发表于 2023-5-24 11:57:52 | 显示全部楼层
02.png
外设地址,以L4为例,可以看到GPIOX是挂在AHB2上的,从GPIOA开始,起始地址为0x48000000;
174301jq8okadk0mrydefq.png
你自己的图上标明了该寄存器的地址偏移量为0x14
03.png
第三张图说明偏移量确实是0x14
那么根据手册计算,该芯片GPIOA寄存器起始地址应该是0x48000000;
去库里面验证一下对不对:
#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)——>
#define GPIOA_BASE            (AHB2PERIPH_BASE + 0x0000UL)——>
#define AHB2PERIPH_BASE       (PERIPH_BASE + 0x08000000UL)——>
#define PERIPH_BASE           (0x40000000UL)
可以看到,GPIOA的起始地址为0x40000000+0x08000000+0x0000=0x48000000;



回复

使用道具 举报

4

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1760
金钱
1760
注册时间
2017-6-23
在线时间
172 小时
发表于 2023-5-24 12:35:20 | 显示全部楼层
a1553289838 发表于 2023-3-28 19:41
我明白这16位是用来控制I/O的,但是IC上面有这么多引脚,我怎么可以知道GPIOH_ODR的第十位是控制PH10这个 ...

你要知道,你所说的寄存器或者端口号名字只是一个代号或者某一个特定类型的代号,对应到芯片里面,这些代号都会关联一个具体的地址
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 11:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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