打印

LPC17XX的IO配置问题(附例程)

[复制链接]
3771|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gsp023|  楼主 | 2013-5-7 17:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
绝对新手,51单片机都不懂。以前搞杂七杂八的东西,现在换了个工作,领导买了个系统让我去搞,好像是LPC1766,于是我在网上找教程,勉强看了STM32,了解了点。就是LPC1700系列的,我下了网上的例程,看到配置IO口的文件,看不懂啊,配置文件LPC1700PinCfg.c,劈头就是这个玩意
void pinInit (void)
{
    /*
     * 引脚连接配置P0.00 -- P0.15
     */
    PINSEL0  = (P0_15_FNUC << 30)|
               (P0_11_FNUC << 22)|(P0_10_FNUC << 20)|(P0_9_FNUC << 18) |(P0_8_FNUC << 16) |
               (P0_7_FNUC << 14) |(P0_6_FNUC << 12) | (P0_5_FNUC << 10)|(P0_4_FNUC << 8)  |
               (P0_3_FNUC << 6)  |(P0_2_FNUC << 4)  |(P0_1_FNUC << 2)  |(P0_0_FNUC << 0);
后面的就不粘贴了,比如,我不明白P0_15_FNUC << 30用来配置哪一位的,P0.15跟这30有什么关系,高手麻烦抬手甩点解释,不胜感激。(附例程)

GPIO_KeyInterrupt.rar

282.07 KB

LPC17XX

相关帖子

沙发
gsp023|  楼主 | 2013-5-7 17:05 | 只看该作者
MDK环境

使用特权

评论回复
板凳
airwill| | 2013-5-7 18:58 | 只看该作者
就是一堆寄存器赋值. 详细地对照芯片数据手册就能弄明白是什么设置了

使用特权

评论回复
地板
airwill| | 2013-5-7 18:59 | 只看该作者
就是一堆寄存器赋值. 详细地对照芯片数据手册就能弄明白是什么设置了

使用特权

评论回复
5
huangxz| | 2013-5-8 16:04 | 只看该作者
P0_15_FNUC 是一个值,在你配置文件中指定的,P0_15_FNUC只有4种情况
00 01 10 11,当P0_15_FNUC对应其中一种的时候是选择一种管脚配置

使用特权

评论回复
6
gsp023|  楼主 | 2013-5-12 09:18 | 只看该作者
huangxz 发表于 2013-5-8 16:04
P0_15_FNUC 是一个值,在你配置文件中指定的,P0_15_FNUC只有4种情况
00 01 10 11,当P0_15_FNUC对应其中一种 ...

你好,请问这些左移位数是什么意思啊,为什么每个引脚左移不一样,比如P0_11_FNUC << 22,难道P0.00 -- P0.15的配置都不同吗,那到时候怎么用啊,PINSEL0是做什么用的,谢谢

使用特权

评论回复
7
diweo| | 2013-5-12 10:23 | 只看该作者
gsp023 发表于 2013-5-12 09:18
你好,请问这些左移位数是什么意思啊,为什么每个引脚左移不一样,比如P0_11_FNUC  ...

P0.00 -- P0.15的配置由程序员指定,当然是不一定相同的。
每个引脚占2位,寄存器宽度是32位,所以一个寄存器智能配置16个引脚。显然引脚0占用0,1位,引脚1占用2,3位,。。。引脚15占用30,31位。
详细信息要看LPC17xx User manual,而不是1766的data sheet.

未命名.JPG (158.19 KB )

未命名.JPG

使用特权

评论回复
8
gsp023|  楼主 | 2013-5-12 21:59 | 只看该作者
diweo 发表于 2013-5-12 10:23
P0.00 -- P0.15的配置由程序员指定,当然是不一定相同的。
每个引脚占2位,寄存器宽度是32位,所以一个寄 ...

谢谢!

使用特权

评论回复
9
shanqi| | 2013-5-13 14:32 | 只看该作者
arm 技术讨论qq:705877470

使用特权

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

本版积分规则

2

主题

10

帖子

0

粉丝