本帖最后由 huzhiyang 于 2017-12-23 17:02 编辑
刚开始用STM32的IIC操作Atmel的ECC508加密芯片,之前在ATMEL的sam4sd16B操作完全没问题,但在STM32的芯片上却遇到问题了。
就是调用了:HAL_I2C_Master_Transmit(&hi2c1, ECC508_IIC_ADDRESS, txdata, txlength, ECC508_TX_TIMEOUT);
HAL_I2C_Master_Receive(&hi2c1, ECC508_IIC_ADDRESS,rxdata,*rxlength,ECC508_RX_TIMEOUT);这两个实现收发。
0xff是我系统上电写入的同步信号,0x00是每次操作之前的wakeup信号,从抓包来看,每次写入都很正常,每一字节后面都有ACK,
但读入的时候似乎总是在最后一个字节没收到ACK。
由于是操作的ECC508,用的都是库,我无从知道到底读取几个字节,所以我还怀疑是在读取大量数据的时候,从机没有ACK,迫使STM32的IIC终止了。
都说STM32的IIC不好用,难道真是STM32的本身bug???
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\413351855\QQ\WinTemp\RichOle\JN@`~C51Z2]KV9`~DTCQL]D.png
|