4 Replies Latest reply on Apr 21, 2020 11:58 PM by ShipingW_81

    pSoC6  I2C问题请教

    JeHa_3912621

      cypress,您好!

       

             我在用cy8c6347芯片的时候。 想使用硬件I2C作为主机。 跟一个芯片进行通讯。  我这边首先使用例程CE220818_I2C_Master_Low_Level01.cydsn。 但是我这边用硬件仿真死在了读取部分。 跳转到了

       

      我有参考PSoC6_Interfacing_BMI160(I2C)_FreeRTOS01例子当中的

      程序依然会停止在上图的位置。 我跟踪发现好像是

      CY_ASSERT_L2(CY_SCB_IS_I2C_ADDR_VALID  (xferConfig->slaveAddress));

      这里出了问题。 我发现这个地址在程序预处理的时候&0x80来判别。 但是我的从机地址是0xA0, 二进制1010 0000 。

      #define CY_SCB_IS_I2C_ADDR_VALID(addr)              ( (0U == ((addr) & 0x80U)) )

       

      这个地方过不去。 我查了这个例子,bmi160的从机地址是1101 0000。  也是最高位为1的。

       

      能给一个bim160例子中不跑RTOS的例子吗。 我没有找到这个例子i2c初始化部分。 只看到了读写函数。 谢谢!