博士
最后登录1970-1-1
在线时间 小时
注册时间2017-6-22
|
本帖最后由 fxliuqq 于 2021-12-18 14:58 编辑
野火I2C实验 I2C_EE_BufferWrite这个函数在处理Addr != 0; NumOfPage == 0这一个有问题吧,这里直接就用I2C_EE_PageWrite(pBuffer, WriteAddr, NumOfSingle);少了一种情况,在SPI 的SPI_FLASH_BufferWrite函数中就处理了.建议while (HAL_I2C_IsDeviceReady(&I2C_Handle, EEPROM_ADDRESS, EEPROM_MAX_TRIALS, I2Cx_TIMEOUT_MAX) == HAL_TIMEOUT)改为while (HAL_I2C_IsDeviceReady(&I2C_Handle, EEPROM_ADDRESS, EEPROM_MAX_TRIALS, I2Cx_TIMEOUT_MAX) != HAL_OK); 我用的STM32L0这个函数就没有返回值HAL_TIMEOUT。HAL_I2C_Mem_Write等函数size大小也被限制为MAX_NBYTE_SIZE(255),我现在用2M的EEPROM,页大小256,也得用128,真坑。地址最高2位是不是就放在设备地址那里,用HAL_I2C_IsDeviceReady设备地址是不是也包括内存地址的高2位? |
|