注册 登录
查看: 465|回复: 17

管脚问题

[复制链接]
发表于 2014-10-18 23:41:10 | 显示全部楼层 |阅读模式
K60有144个管脚,,PTA0到PTA31,,PTB0到PTB31,,,PTC0到PTC31,,PTD0到PTD31,,PTE0到PTE31这就超过144了,,,他们和管脚有啥关系,,
还有,是一个管脚对应一个位吗,,像51单片机那样,,,
还有,,在山外书的第8页,,unit32_t PDOR与unit32_t PSOR之间是偏移64个地址吗,,,其中,unit32_t PDOR这个寄存器是8位的寄存器吗,,
还有,,在山外书的第9页,,#define PTA_BASE_PTR       ((GPIO_MemMaptr)0x400FF000u),,,0x400FF000u是表示PTA_BASE_PTR       的起始地址,然后是
这个结构体中的成员列表的地址就依次偏移吗,,,那他和成员列表中的偏移有啥关系。。
共四个问题,,新手急求解答,,谢谢,,
回复

使用道具 举报

发表于 2014-10-18 23:42:46 | 显示全部楼层
有的管脚,仅仅是占着位置,实际上没有引出来的。需要看复用表。
回复 支持 反对

使用道具 举报

发表于 2014-10-18 23:43:48 | 显示全部楼层
unit32_t PDOR这个寄存器是8位的寄存器吗……

都写着是 uint32_t ,那就是32位啊!!!!
回复 支持 反对

使用道具 举报

发表于 2014-10-18 23:44:36 | 显示全部楼层
后面两个问题,我也没搞懂,坐等高手回答吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-18 23:49:07 | 显示全部楼层
宫格格 发表于 2014-10-18 23:42
有的管脚,仅仅是占着位置,实际上没有引出来的。需要看复用表。

那是一个管脚就是一个位吗。。。像51那样
回复 支持 反对

使用道具 举报

发表于 2014-10-18 23:50:07 | 显示全部楼层
lulinhan 发表于 2014-10-18 23:49
那是一个管脚就是一个位吗。。。像51那样

是,但有占位,不代表就把管脚引出来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-18 23:53:10 | 显示全部楼层
宫格格 发表于 2014-10-18 23:50
是,但有占位,不代表就把管脚引出来。

多谢了,,
回复 支持 反对

使用道具 举报

发表于 2014-10-19 00:08:50 | 显示全部楼层
#define PTA_BASE_PTR       ((GPIO_MemMaptr)0x400FF000u),,,0x400FF000u是表示PTA_BASE_PTR       的起始地址,然后是
这个结构体中的成员列表的地址就依次偏移吗

是,就是从起始地址开始,一个个排队偏移。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-19 00:24:38 | 显示全部楼层
仰逸致 发表于 2014-10-19 00:08
#define PTA_BASE_PTR       ((GPIO_MemMaptr)0x400FF000u),,,0x400FF000u是表示PTA_BASE_PTR       的起始 ...

那是一个地址就是对应着一个32位的寄存器吧,,
typedef struct GPIO_MemMap{
unit32_t PDOR;//端口数据输出寄存器,偏移:0x0*
unit32_t PSOR;//端口数据置1寄存器,偏移:0x4*
unit32_t PCOR;//端口数据置0寄存器,偏移:0x8*
unit32_t PTOR;//端口数据反转寄存器,偏移:0xc*
unit32_t PDIR;//端口数据输入寄存器,偏移:0x10*
unit32_t PDDR;//端口数据方向寄存器,偏移:0x14*
}volatile *GPIO_MemMaptr;
这就是声明的那个GPIO_MemMaptr结构体,,在结构体中的成员列表中的偏移和PAT_BASE_PTR与PBT_BASE_PTR之间的偏移有啥关系,,是怎么对应起来的;










-

回复 支持 反对

使用道具 举报

发表于 2014-10-19 00:26:41 | 显示全部楼层
lulinhan 发表于 2014-10-19 00:24
那是一个地址就是对应着一个32位的寄存器吧,,
typedef struct GPIO_MemMap{
unit32_t PDOR;//端口数 ...

PTA_BASE_PTR 和 PTB_BASE_PTR 的偏移,是芯片厂家定的,没任何关系。厂家想定多少就多少,只要偏移大于结构体大小就好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-19 00:37:49 | 显示全部楼层
仰逸致 发表于 2014-10-19 00:26
PTA_BASE_PTR 和 PTB_BASE_PTR 的偏移,是芯片厂家定的,没任何关系。厂家想定多少就多少,只要偏移大于 ...

unit32_t PDOR;//端口数据输出寄存器,偏移:0x0*
unit32_t PSOR;//端口数据置1寄存器,偏移:0x4*
unit32_t PCOR;//端口数据置0寄存器,偏移:0x8*
unit32_t PTOR;//端口数据反转寄存器,偏移:0xc*
unit32_t PDIR;//端口数据输入寄存器,偏移:0x10*
unit32_t PDDR;//端口数据方向寄存器,偏移:0x14*
那他们之间的偏移是怎么偏移的,,比如说,从0x0*到0x4*他们之间是相差0x1*。0x2*、0x3*这是相差了64位,,比32位大,,为什么。。
回复 支持 反对

使用道具 举报

发表于 2014-10-19 00:55:13 | 显示全部楼层
lulinhan 发表于 2014-10-19 00:37
unit32_t PDOR;//端口数据输出寄存器,偏移:0x0*
unit32_t PSOR;//端口数据置1寄存器,偏移:0x4*
uni ...

从0到4,是相差4啊!!怎么会是1?

4-0=4!换句话说,0~3共4个字节是属于第一个32位寄存器。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-19 12:07:23 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-19 00:55
从0到4,是相差4啊!!怎么会是1?

4-0=4!换句话说,0~3共4个字节是属于第一个32位寄存器。

我理解的是,,0*是在0的后面跟上任一的数字。。如05,,那么0*到4*就是05到45,,,由于0x是十六进制,于是从05到45的地址偏移就表示成
05,06,07,08,09,0a,0b,0c,0d,0e,0f,10,11,12,13,14,15,16,17,18,19,1a,........到45,,这样就是16*4了,,不知道为什么这样不对,,为什么会是4!,
刚接触这些,懂得很少,,还请指教,,
回复 支持 反对

使用道具 举报

发表于 2014-10-19 12:09:35 | 显示全部楼层
lulinhan 发表于 2014-10-19 12:07
我理解的是,,0*是在0的后面跟上任一的数字。。如05,,那么0*到4*就是05到45,,,由于0x是十六进制, ...

不是,不用看*号,忽略它。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-19 12:16:08 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-19 12:09
不是,不用看*号,忽略它。

那他有代表的含义吗,表示的是什么意思
回复 支持 反对

使用道具 举报

发表于 2014-10-19 12:40:56 | 显示全部楼层
lulinhan 发表于 2014-10-19 12:16
那他有代表的含义吗,表示的是什么意思

漏删的符号而已,你删掉即可。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2014-10-19 13:26:27 | 显示全部楼层
lulinhan 发表于 2014-10-19 12:16
那他有代表的含义吗,表示的是什么意思

代码忘了删掉了,你把他删掉就好。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-19 20:14:59 | 显示全部楼层
山外メ雲ジ 发表于 2014-10-19 12:40
漏删的符号而已,你删掉即可。

好吧,,感谢耐心解答,,
回复 支持 反对

使用道具 举报

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

本版积分规则

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