请教朋友们关于i2c_loopback_m3例程下载到M3核后如何验证程序跑的正常与否呢?谢谢了!
Eric Ma:
hongyue,
因为loopback模式就是在内部将master和slave接到了一起,所以你只要看接收的buff数据对不对就可以了
Eric
请教朋友们关于i2c_loopback_m3例程下载到M3核后如何验证程序跑的正常与否呢?谢谢了!
hongyue yu:
回复 Eric Ma:
Eric
是不是就是看一下I2CMDR、I2CSDR中的值呢?图中的值即为运行之后的值,默认是0xBAD0BAD0。
请教朋友们关于i2c_loopback_m3例程下载到M3核后如何验证程序跑的正常与否呢?谢谢了!
hongyue yu:
回复 Eric Ma:
Eric,
我点击运行之后,I2CMDR中的值为0x43,I2CSDR中的值为0x2,不是很清楚为什么会是这两个值?
请教朋友们关于i2c_loopback_m3例程下载到M3核后如何验证程序跑的正常与否呢?谢谢了!
Eric Ma:
回复 hongyue yu:
hongyue,
你往buf中写入的是什么数据?
先确认接收buff跟发送buff是一致的。
另外I2CMDR跟I2CSDR只有低8位有效。
Eric
请教朋友们关于i2c_loopback_m3例程下载到M3核后如何验证程序跑的正常与否呢?谢谢了!
hongyue yu:
回复 Eric Ma:
Eric,
我只是将例程编译之后下载到目标板运行的,对程序没有做更改;程序中只是定义了 ulDataTx[0] = 'I'; ulDataTx[1] = '2'; ulDataTx[2] = 'C';
程序的目的就是将这三个值由master发送到slave;然后又由slave发送到master。但是就是不清楚为什么会出现那两个值?
请教朋友们关于i2c_loopback_m3例程下载到M3核后如何验证程序跑的正常与否呢?谢谢了!
Eric Ma:
回复 hongyue yu:
hongyue,
那里查看一下'C'对应的hex值是多少。我没测过,但因为程序中是用Rxbuff将I2CSDR的数据给读取了,读取后是否还会保留该数据,我没确认。
你可以通过设断点来查看。
在这里设断点,然后看这个I2CSDR的值。
ulDataRx[ulindex] = I2CMasterDataGet(I2C0_MASTER_BASE);
Eric
请教朋友们关于i2c_loopback_m3例程下载到M3核后如何验证程序跑的正常与否呢?谢谢了!
hongyue yu:
回复 Eric Ma:
Eric,
设置断点之后,I2CMDR的值会变化0x49、0x32、0x43,也就是I2C;但I2CSDR中的值没有任何变化一直是0x2。再点击run的话还会报错,不清楚是什么原因?