智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4109|回复: 12
打印 上一主题 下一主题

同学们,发福利啦!超核库如何改变引脚映射问题。倾情奉献,只为报恩。

[复制链接]

3

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1133
QQ
威望
580
贡献
325
兑换币
378
注册时间
2012-11-7
在线时间
114 小时
跳转到指定楼层
1#
发表于 2013-11-5 22:08:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 爱可死/X 于 2013-11-5 22:13 编辑

再发一次。刚刚打了半个小时的文字,网页一卡,啥都没了。气死了。但是本这以人为本的心,还是重新写一遍。
超核库,我选择,我喜欢。嘻嘻
刚刚遇到一个问题,I2C引脚被占用了,但是超核库里面只有四个定义
#define I2C0_SCL_PB0_SDA_PB1       (0x00040210U)   //SCL-PB0  SDA-PB1
#define I2C0_SCL_PB2_SDA_PB3       (0x000c2210U)
#define I2C1_SCL_PE1_SDA_PE0       (0x00001641U)
#define I2C1_SCL_PC10_SDA_PC11     (0x002ca221U)
正当惆怅中,去“寻医问药”,无果,最后还是超核的编写者,亲自手把手指导了一下,才明白。现在来反哺一下,不喜勿喷谢谢。
需要先明白下面这个结构体:
typedef struct
{
    uint32_t I2C_Index:4;
    uint32_t I2C_GPIO_Index:4;
    uint32_t I2C_Alt_Index:4;
    uint32_t I2C_SCL_Pin_Index:6;
   uint32_t I2C_SDA_Pin_Index:6;
  uint32_t I2C_Reserved:8;
}I2C_MapTypeDef;
:后面的:N  代表位数。
很神奇的是:4+4+4+6+6+8= 32位。确实,不是巧合。
第一个 I2C_Index:4; 代表I2Cx ( x=0.1.2.……) 看芯片IIC有多少个咯   
第二行:I2C_GPIO_Index:4; 代表PORTx ( x=0.1.2.……15) 刚好对应A到E
第三行:这是一个管脚映射,数据手册上有滴。 PortE iic 对应 alt = 6不信去查查看咯。
第四行: I2C_SCL_Pin_Index:6; 6位,刚好表示0-31 就是选择SCL定义为portx 的第几位。
第五行:同第四行咯。
第六行:比较有意思,是保留位。8位。毕竟这是模仿stm32的方式。所以,多出几位也很正常蛤。保留这,没准以后有用滴。
这样,我们就凑足了32位。

现在举例子蛤:
{1,     4, 6, 1, 0,0},  //I2C1_SCL_PE1_SDA_PE0
1:选择 IIC1
4: 选择 portE
6:PortE iic 对应 alt = 6
1:选择PORTE.1  SCL
0: 选择PORTE.0  SDA
0: 保留位值
于是乎我们得到了这6个值。从上网下,为低到高。
现在我们从高到底排列不就是(0x00040210U)?
现在再看#defineI2C0_SCL_PB0_SDA_PB1       (0x00040210U)  
懂了没?
所以要改变引脚映射,需要重设置这几个值就可以啦。理解了,也很容易的。本人第一次发表,所以不会发图,抱歉了蛤。有兴趣可以加我35157483,本人小车摄像头,有兴趣可以交流交流,伸手党就免了蛤。
好了,任务完成,再次感谢超核给我省了很多麻烦,也感谢刚刚指导我的那个朋友。再次感谢!
同时也支持超核库2.4.虽然是刚刚出,但是,非常给力!

3

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1133
QQ
威望
580
贡献
325
兑换币
378
注册时间
2012-11-7
在线时间
114 小时
2#
 楼主| 发表于 2013-11-5 22:19:55 | 只看该作者
回帖是一种美德蛤
回复 支持 反对

使用道具 举报

4

主题

307

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2984
威望
1470
贡献
832
兑换币
973
注册时间
2013-3-8
在线时间
341 小时
3#
发表于 2013-11-5 22:51:39 | 只看该作者
我用的也是超核,学习下,以后应该用的着,只是现在没大看懂
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

注册会员

Rank: 2

积分
76
威望
55
贡献
19
兑换币
21
注册时间
2013-10-9
在线时间
1 小时
毕业学校
btbu
4#
发表于 2013-11-5 23:14:29 | 只看该作者
太麻烦啦,我用拉普兰德的K60库,可以在初始化时随意设置I2C的复用引脚,根本不用改他的底层代码。。。我喜欢,我选择:lol
回复 支持 反对

使用道具 举报

36

主题

927

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5102

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
2609
贡献
1465
兑换币
1690
注册时间
2013-1-5
在线时间
514 小时
5#
发表于 2013-11-6 11:50:46 | 只看该作者
赞一个!分享精神值得鼓励!!
回复 支持 反对

使用道具 举报

1

主题

70

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1063
威望
524
贡献
301
兑换币
343
注册时间
2013-9-6
在线时间
119 小时
毕业学校
山大
6#
发表于 2013-11-6 16:26:48 | 只看该作者
同用超核的库。超喜欢
回复 支持 反对

使用道具 举报

3

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1133
QQ
威望
580
贡献
325
兑换币
378
注册时间
2012-11-7
在线时间
114 小时
7#
 楼主| 发表于 2013-11-6 18:29:19 | 只看该作者
兰普拉德的库我也看过,比较详细,但是,整个构架不是那么好。学过arm的人肯定会选超核的。对野火一直有偏见,虽然用的人挺多的……官方有一个,也不错的哦。就是要改结构太难了
回复 支持 反对

使用道具 举报

3

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1133
QQ
威望
580
贡献
325
兑换币
378
注册时间
2012-11-7
在线时间
114 小时
8#
 楼主| 发表于 2013-11-12 22:35:37 | 只看该作者
没事干,给自己顶一下。虽然自己都看不懂,偶也:lol:lol
回复 支持 反对

使用道具 举报

3

主题

145

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1133
QQ
威望
580
贡献
325
兑换币
378
注册时间
2012-11-7
在线时间
114 小时
9#
 楼主| 发表于 2013-11-13 18:10:30 | 只看该作者
队友不给力啊,有人叫我今早跳坑,我该怎么办呢?  火起来一个人搞摄像头,
回复 支持 反对

使用道具 举报

1

主题

17

帖子

0

精华

高级会员

Rank: 4

积分
622
威望
292
贡献
188
兑换币
188
注册时间
2013-9-28
在线时间
71 小时
10#
发表于 2014-3-19 11:33:11 | 只看该作者
看不懂,乱
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-11-6 03:40 , Processed in 0.075707 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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