Loading lib/mcp2221a_i2c.cpp +4 −6 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ namespace MCP2221A { { int ret = 0; for (int addr = 0x00; addr < I2C_MAX_ADDR; addr++) { for (int addr = 0x08; addr < I2C_MAX_ADDR; addr++) { set_slave_address(addr); Loading Loading @@ -176,11 +176,9 @@ namespace MCP2221A { set_slave_address(slave_addr); if (length < I2C_SMBUS_WORD_DATA) { uint16_t res = i2c_smbus_read_word_data(fd_, reg_addr); uint8_t h = (uint8_t) (res >> 8); uint8_t l = (uint8_t)res; data[0] = (uint8_t)(res >> 8); data[1] = (uint8_t)(res & 0xFF); int res = i2c_smbus_read_word_data(fd_, reg_addr); data[0] = res >> 8; data[1] = res & 0xFF; return; } Loading tests/main.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -11,13 +11,14 @@ int main() // for (auto& slave: slaves) // cout << hex << "0x" << slave << dec << endl; unsigned char data [] = {0x01, 0x02, 0x03}; uint8_t tx_data [] = {0x00, 0x56, 0x78}; uint8_t rx_data [2]; i2c.send(0x17, tx_data, 3); i2c.read_register(0x17, 0x00, rx_data, 2); i2c.receive(0x17, rx_data, 2); // i2c.receive(0x17, rx_data, 2); for (int i = 0; i < 2; i++) { cout << hex << "0x" << rx_data[i] << dec << endl; cout << hex << "0x" << (int)rx_data[i] << dec << endl; } return 0; Loading Loading
lib/mcp2221a_i2c.cpp +4 −6 Original line number Diff line number Diff line Loading @@ -103,7 +103,7 @@ namespace MCP2221A { { int ret = 0; for (int addr = 0x00; addr < I2C_MAX_ADDR; addr++) { for (int addr = 0x08; addr < I2C_MAX_ADDR; addr++) { set_slave_address(addr); Loading Loading @@ -176,11 +176,9 @@ namespace MCP2221A { set_slave_address(slave_addr); if (length < I2C_SMBUS_WORD_DATA) { uint16_t res = i2c_smbus_read_word_data(fd_, reg_addr); uint8_t h = (uint8_t) (res >> 8); uint8_t l = (uint8_t)res; data[0] = (uint8_t)(res >> 8); data[1] = (uint8_t)(res & 0xFF); int res = i2c_smbus_read_word_data(fd_, reg_addr); data[0] = res >> 8; data[1] = res & 0xFF; return; } Loading
tests/main.cpp +4 −3 Original line number Diff line number Diff line Loading @@ -11,13 +11,14 @@ int main() // for (auto& slave: slaves) // cout << hex << "0x" << slave << dec << endl; unsigned char data [] = {0x01, 0x02, 0x03}; uint8_t tx_data [] = {0x00, 0x56, 0x78}; uint8_t rx_data [2]; i2c.send(0x17, tx_data, 3); i2c.read_register(0x17, 0x00, rx_data, 2); i2c.receive(0x17, rx_data, 2); // i2c.receive(0x17, rx_data, 2); for (int i = 0; i < 2; i++) { cout << hex << "0x" << rx_data[i] << dec << endl; cout << hex << "0x" << (int)rx_data[i] << dec << endl; } return 0; Loading