#include #include "iic.h" #include "log.h" #include "tool.h" uint8_t CLK_Pin(uint8_t l) { // LOGT("CLK", "P:%d", l); return l; } uint8_t SDA_Set(uint8_t l) { // LOGT("SDA", "P:%d", l); return l; } uint8_t SDA_Mode(uint8_t l) { if (l) { // LOGT("SDA", "M:IN"); } else { // LOGT("SDA", "M:OUT"); } return l; } uint8_t SDA_Read() { uint8_t l = rand() % 2; // LOGT("SDA", "P:%d", l); return l; } void Test_iic() { SW_Dev_IIC dev = { .CLK_SET = CLK_Pin, .SDA_SET = SDA_Set, .SDA = SDA_Read, .SDA_MODE = SDA_Mode, .ADD = 0x34 }; uint8_t internalAddress = 0x56; uint32_t len = 64; uint8_t writeData[len]; uint8_t readData[len]; for (int i = 0; i < len; ++i) { writeData[i] = rand() % 200; } SW_IIC_WL(dev, internalAddress, writeData, len); BufPrint(" TX", writeData, 8, len, 16); SW_IIC_RL(dev, internalAddress, readData, len, 1); BufPrint(" RX", readData, 8, len, 16); }