[求助] tm4c123gh6pm的I2C通信问题

Psyclonus   2018-7-20 21:36 楼主
最近做的一个小项目里需要使用GY30这款光照强度传感器,估计不少人都用过,I2C通信的。
不太想用店家例程给的用GPIO模拟的方式,想试试硬件I2C。
按照GY30数据手册的要求,第一步是发送从机地址和指令0x01来让传感器上电,这里我设置完I2CMasterSlaveAddrSet这个函数并确认无误之后,就按照连续发送的方式来设置I2CMasterControl这个函数,由于就是发送两个字节,于是第一个用了I2C_MASTER_CMD_BURST_SEND_START,第二个用了I2C1_BASE,I2C_MASTER_CMD_BURST_SEND_FINISH;每发送完一个字节之后,先用I2CMasterBusy来检测发送是否完成,之后再用I2CMasterErr函数来检测发送是否成功;
结果是:发送地址这个字节时没有问题,但是一旦发送0X01这个指令,I2CMasterErr就会报错,根据反馈回的错误类型,是数据应答错误,也就是没有产生ACK位。
请问有大佬遇到过这种问题吗?该如何解决呢?
另外再请问一下,I2CMasterSlaveAddrSet这个函数的设置是否已经包含了“向从机传递对应地址和读写方向”这样的操作呢?

回复评论 (1)

GPIO模拟的方式,都模拟了,自己写发送也可以啊。时序不太复杂。一帧数据应该不会很长。一帧弄好了。就可以根据传感器手册的说明,执行逻辑操作过程。
点赞  2018-7-25 13:21
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复