打印
[ZLG-ARM]

关于LPC2131的问题

[复制链接]
1143|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hero_0810|  楼主 | 2007-9-14 17:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
关于LPC2131中的PINSELn的问题
    《深入浅出ARM7》147页:
    引脚连接设置
    将相应引脚的PINSELn位设置为00,即选择GPIO功能,大部分引脚复位后默认为GPIO。

    146页:
    LPC2131拥有47个通用I/O口,分别为P0[31:0]、P1[31:16],其中,P0.24未用,P0.31仅为输出。由于口线与其他功能复用,因而需要通过相关的引脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。

    我是这么想的:
    PINSELn如果是32位,三个就是96位=48位*2,也就是每两位PINSELn的位控制一个IO口。如果按顺序的话,就是P1.16由PINSEL2的第0位和第1位控制,……P1.24(未用)由PINSEL2的第16位和第17位控制。
    但是《深入浅出ARM7》上的GPIO实验程序“单路LED实验程序”和“流水灯实验”中,主程序开始有这么一句:“PINSEL2 = PINSEL2 & (~0x08);”并在后面注明:“//P1[25:16]连接GPIO”
    这样我就不明白了,(~0x08)就是“00……00001000 B(共32位)”但是这个数怎么就能完成“P1[25:16]连接GPIO”这个功能呢?
    寻思了两天,没有门路,只得求救,万分感激!

相关帖子

沙发
hero_0810|  楼主 | 2007-9-14 17:05 | 只看该作者

改一点

改:
    这样我就不明白了,(~0x08)就是“11……11110111 B(共32位)”但是这个数怎么就能完成“P1[25:16]连接GPIO”这个功能呢?
    寻思了两天,没有门路,只得求救,万分感激! 

使用特权

评论回复
板凳
xxqarm| | 2007-9-14 22:37 | 只看该作者

这样是否明白?

见图.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

46

帖子

0

粉丝