请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:EK-TM4C1294XL 主题中讨论的其他器件:Energia
大家好,我们遇到了问题。
我们正在使用 PCA9698 - NXP 半导体进行 IO 扩展。 我们使用 Energia v18来满足要求。 我们遇到了有关循环的问题。 我只是想控制引脚已准备好进行 i2c 通信。 这就是我使用 LED 进行控制的原因。 我们只得到两次逻辑'One'两次逻辑'zere',之后 LED 保持在逻辑1。 它们正在退出 LOOP 或其他内容。 我无法解决这个问题。 一段时间后,它们始终保持逻辑“1”。
我正在使用 XiO 库。 显示了我的代码。 您不需要查看我使用的是哪种。 主要问题是 i2c 无法开始工作或无法稳定工作。 我尝试了很多方法来解决问题,但我无法找到问题所在或问题所在。
/*************
标题:爱荷华缩放工程 I2C-XiO (PCA9698) Arduino 示例
作者:Nathan D. Holmes
文件: $ID:$
许可证:GNU 通用公共许可证 v3*/
#include
#include
XiO XioBoard;
void setup()
{
pinMode (PN_2、OUTPUT);
pinMode (PJ_0、OUTPUT);
digitalWrite (PN_2、 低电平);
digitalWrite (PJ_0、高电平);
//以9600 bps 初始化串行通信:
Serial.begin(9600);
Serial.println ("Hello\n");
Wire.setModule(0);//Start i2c
Wire.begin();
//以下两个初始化示例均假定
I2C-XiO 上的地址跳线 A0、A1和 A2 //设置为高电平(打开、无跳线)。 如果有设置为低电平(跳线),请
//在“Begy()”调用中将相应的配置值替换为“低电平”
//如果使用标准的爱荷华缩放屏蔽将 I2C 线连接到 Arduino,
///IORST 线可能连接到数字 IO 线4,/oen 连接到数字 IO 线3。
//使用下面的初始化程序。
//(AD0、AD1、AD2、RESET_PIN、output_enable_PIN)
Serial.println ("XiO started");
//如果 I2C 电缆上的/IORST 和/oen 线路未连接到任何位置,请使用此初始化程序
//而不是上面的初始化程序。
// xioBoard.begin(HIGH,高,高,-1,-1);
}
void loop()
{
xioBoard.begin(LOW、low、low、pj_0、pn_2);
//通过
执行以下操作可以更快地完成引脚配置(因为//使用单个 I2C 总线事务):
XioBoard.XioPinModeCached (Xio_PIN_A0、输出);
XioBoard.XioPinModeCached (Xio_PIN_A1、输出);
XioBoard.XioPinModeCached (Xio_A2、Xio_A2) 输出);
xioBoard.xioPinModeCached (Xio_PIN_A3、输出);
xioBoard.xioPinModeCached (Xio_PIN_A4、输出);
xioBoard.xioPinModeCached (Xio_PIN_A5、 输出);
xioBoard.xioPinModeCached (Xio_PIN_A6、输出);
xioBoard.xioPinModeCached (Xio_PIN_A7、输出);
XioBoard.XioPinModeCached (Xio_PIN_B0、输出);XioBoard.XioPinModeCached
(Xio_PIN_B1、输出);
XioBoard.XioPinModeCached (Xio_PIN_B2、 输出);
xioBoard.xioPinModeCached (Xio_PIN_B3、输出);
xioBoard.xioPinModeCached (Xio_PIN_B4、输出);
xioBoard.xioPinModeCached (Xio_PIN_B5、 输出);
oBoard.xioPinModeCached (Xio_PIN_B6、输出);xioBoard.xioPinModeCached
(Xio_PIN_B7、输出);
xioBoard.xioPinModeCached (Xio_PIN_C0、 Output);
xioBoard.xioPinModeCached (Xio_PIN_C1、output);
xioBoard.xioPinModeCached (Xio_PIN_C2、output);
xioBoard.xioPinModeCached (Xio_PIN_C3、输出);
xioBoard.xioPinModeCached (Xio_PIN_C4、输出);
xioBoard.xioPinModeCached (Xio_PIN_C5、 输出);
xioBoard.xioPinModeCached (Xio_PIN_C6、输出);
xioBoard.xioPinModeCached (Xio_PIN_C7、输出);
xioBoard.xioPinModeCached (Xio_PIN_D0、 Output);
xioBoard.xioPinModeCached (Xio_PIN_D1、output);
xioBoard.xioPinModeCached (Xio_PIN_D2、output);
xioBoard.xioPinModeCached (Xio_PIN_D3、输出);
xioBoard.xioPinModeCached (Xio_PIN_D4、输出);
xioBoard.xioPinModeCached (Xio_PIN_D5、 输出);
xioBoard.xioPinModeCached (Xio_PIN_D6、输出);
xioBoard.xioPinModeCached (Xio_PIN_D7、输出);
XioBoard.XioPinModeCached (Xio_PIN_E0、输出);XioBoard.XioPinModeCached
(Xio_PIN_E1、输出);
XioBoard.XioPinModeCached (Xio_PIN_E2、 输出);
xioBoard.xioPinModeCached (Xio_PIN_E3、输出);
xioBoard.xioPinModeCached (Xio_PIN_E4、输出);
xioBoard.xioPinModeCached (Xio_PIN_E5、 输出);
xioBoard.xioPinModeCached (Xio_PIN_E6、输出);
xioBoard.xioPinModeCached (Xio_PIN_E7、输出);
xioBoard.refreshPinModes();
//这些命令使引脚 A0上的输出闪烁-尝试通过电阻器连接 LED!
xioBoard.xioDigitalWriteCached (Xio_PIN_A0、low);//它指 U1集成引脚 IO1_0
xioBoard.xioDigitalWriteCached (Xio_PIN_A1、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A2、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A3、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A4、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A5、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A6、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A7、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B0、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B1、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B2、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B3、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B4、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B5、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B6、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B7、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C0、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C1、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C2、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C3、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C4、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C5、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C6、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C7、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D0、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D1、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D2、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D3、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D4、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D5、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D6、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D7、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E0、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E1、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E2、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E3、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E4、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E5、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E6、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E7、高电平);
xioBoard.refreshio();
serial.print ("循环 a\n");
延迟(1000);
xioBoard.xioDigitalWriteCached (Xio_PIN_A0、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A1、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A2、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A3、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A4、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A5、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A6、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_A7、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B0、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B1、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B2、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B3、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B4、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B5、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B6、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_B7、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C0、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C1、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C2、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C3、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C4、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C5、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C6、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_C7、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D0、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D1、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D2、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D3、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D4、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D5、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D6、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_D7、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E0、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E1、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E2、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E3、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E4、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E5、低电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E6、高电平);
xioBoard.xioDigitalWriteCached (Xio_PIN_E7、低电平);
xioBoard.refreshio();
serial.print ("循环 B\n");
延迟(1000);
}