2012-02-19 127 views
0

我有一个硬件,需要打开GPIO连接的LED(查看硬件规格,GPIO BCBUSB0连接到LED),以显示软件在其内部运行良好。如果由于某种原因软件没有运行,那么LED应该关闭或变红。C编程控制GPIO指示灯

现在,我认为我应该设置一个看门狗或者定期向Led发送信号的东西来显示软件正在运行的状态。如果由于某种原因LEd没有以特定的时间间隔接收信号,它应该关闭。

我在使用C语言时很舒服,但不知道如何编程GPIO来打开/关闭LED。任何建议或建议都会有很大的帮助。

谢谢

+1

你在运行什么操作系统?什么样的环境? – reuben 2012-02-19 21:07:23

+0

其Linux操作系统(Ubuntu)内核版本2.6。我通过以太网端口访问硬件。我读了几个文件,我想我需要在正常时间间隔发送HIGH和LOW信号来显示软件正在运行。但我不知道如何开始?如上所述,LED在BCBUSB上连接到GPIO(在pdf上它有48个编号),所以你们是否认为我需要移位到48位然后操作它? – samantha 2012-02-19 21:17:54

+1

这是一个非常好的猜测,转移1位并写入它。要知道肯定,你需要看看原理图。您可能需要先阅读PIO,设置/清除LED位,然后再写回。这样,您不会无意中设置/清除PIO输出。顺便说一下,这个PIO ***真的有48个输出引脚吗?或者你想设置/清除第4位和第5位(48位十进制= 0x30)? – 2012-02-19 22:02:53

回答

3

FT2232H是一个USB转UART转换芯片。快速浏览一下datasheet,可以看出它可以放在一个比特级模式中,这是你显然想要做的。如果您阅读数据表的第4.10节,它会引用AN2232-02, “Bit Mode Functions for the FT2232”,其中声明了详细信息以及如何执行此操作的一些示例。

你说你正在通过以太网与硬件通信,但听起来不对(或者至少只是故事的一部分)。最有可能的是,FT2232H通过USB连接到处理器(可能是您的主机)。要切换GPIO引脚,您需要配置FT2232H,以便在bit-bang模式下运行。一旦你已经想出了如何做到这一点,你需要通过USB发送命令来切换BCBUSB0。希望这可以帮助。

+0

谢谢Sean,你的建议帮助我理解了FTDI芯片。目前我的代码在独立应用程序中工作正常,但是当我将它集成到基线代码时,它不起作用。我正在研究它。再次感谢 – samantha 2012-02-29 08:24:13