首页 > 解决方案 > 虽然 GPIO2 上的 LED 工作正常,但在带有 LPC1768 的 GPIO1 上

问题描述

我有一个带有设备 LPC1768 的定制板。虽然其他所有功能(例如 SPI 上的 LCD、以太网、I2C EEPROM 等)都可以,但出于某种原因,虽然我可以打开和关闭 GPIO2 上的 LED,但我不能对 GPIO2 上的引脚执行相同操作GPIO1。也许我不应该责怪整个 GPIO1(或我自己),但至少是我尝试使用的部分。

如果我在其中一个 GPIO1 引脚上连接一个按钮(带有内部上拉电阻并作为输出),我可以按原样读取按钮输入。

这是根据用户手册的定义部分;

#define FIO_BASE_ADDR       (0x2009C000)
#define FIO1CLR             (*(volatile unsigned int  *)(FIO_BASE_ADDR + 0x3C))
#define FIO2CLR             (*(volatile unsigned int  *)(FIO_BASE_ADDR + 0x5C))
#define FIO1SET             (*(volatile unsigned int  *)(FIO_BASE_ADDR + 0x38))
#define FIO2SET             (*(volatile unsigned int  *)(FIO_BASE_ADDR + 0x58))

当引脚 P2.5 上的 LED 按应有的状态打开和关闭时;

FIO2SET = (1uL << 5); // P2.5
FIO2CLR = (1uL << 5); // P2.5

P1.18 上的 LED 不亮;

FIO1SET = (1uL << 18); // P1.18

为了测试连接到 GPIO1 引脚的所有 LED,我编写了两行代码LPC17xx.h,然后证明它可以工作,所有 LED 都相应地打开和关闭。

LPC_GPIO1->FIOSET = 0xffffffff;
LPC_GPIO1->FIOCLR = 0xffffffff;

任何输入高度赞赏。

标签: cembeddedgpionxp-microcontrollerlpc

解决方案


推荐阅读