你好:
在我通过打开电源域使TIMER1工作后,我想知道为什么这不能在I2C_DATA_CMD_REG上工作,它输出0。下面是我使用的示例代码。
愿一切都好!
丹尼尔
关键词:
设备:
你好:
在我通过打开电源域使TIMER1工作后,我想知道为什么这不能在I2C_DATA_CMD_REG上工作,它输出0。下面是我使用的示例代码。
愿一切都好!
丹尼尔
嗨,丹尼尔,
谢谢你的后续问题。我看到Timer1代码被注释掉了,所以您能解释一下您试图用I2C做什么吗?
您不使用SDK提供的I2C api有什么特殊原因吗?我们强烈建议使用SDK函数与DA14531外设交互。
也请查看SDK的I2C样例。
SDK location: 6.0.14.1114\projects\target_apps\peripheral_examples\i2c\i2c_eeprom\Keil_5
http://lpccs-docs.dialog-semiconductor.com/UM-B-119_DA14585-DA14531_SW_Platform_Reference/Peripheral%20Example%20亚博国际官网平台网址Applications/Peripheral%20Example%20Applications.html#i2c-eeprom-example
谢谢,PM_Dialog
当您试图访问尚未配置的imp I²C总线时,会出现这个简单的错误。检查您的代码,如果需要,调用i2c.configure ()以支持的速度常数作为参数传递。
imp通过建立标准的I²C启动条件来表示它开始I²C事务的意图:它试图将SDA线拉低(因此波形有一个下降边),而SCL线保持高。如果imp无法将SDA拉低,将发出此错误。
如果另一个I²C主机在同一总线上运行并已经控制了它,则可能出现此错误。如果imp是总线上唯一的主机,这个错误可能是由于选择不好的上拉电阻造成的。I²C端口是开放式排水管,因此只能拉低SDA和SCL线;当它们被总线设备释放时,上拉电阻被要求驱动高线路。
imp信号后开始,愿写数据,它发送的7位地址我²C外围它想沟通,紧随其后的是一位指示事务是否写(imp拉SDA低)或阅读(imp的叶子SDA高)。这八个位应该被一个单位的ACK信号确认从外设在传输地址;它拉低了SDA。如果确认在第九个时钟脉冲期间没有发生,那么imp将发出此错误。
预付礼物平衡