write_reg ssd1306 basic opertion */
| 99 | |
| 100 | /* write_reg ssd1306 basic opertion */ |
| 101 | static void ssd1306_write_mult_reg(struct rt_i2c_bus_device *i2c_dev, |
| 102 | rt_bool_t is_write_cmd, rt_uint8_t len, rt_uint8_t *data |
| 103 | /*rt_uint8_t data*/) |
| 104 | { |
| 105 | rt_uint8_t *buff = NULL; |
| 106 | struct rt_i2c_msg msgs; |
| 107 | |
| 108 | msgs.addr = SSD1306_ADDR; |
| 109 | msgs.flags = RT_I2C_WR; |
| 110 | buff = (rt_uint8_t *)rt_malloc((len + 1) * sizeof(rt_uint8_t)); |
| 111 | |
| 112 | if (RT_TRUE == is_write_cmd) |
| 113 | { |
| 114 | buff[0] = SSD1306_MD_CMD; |
| 115 | } |
| 116 | else |
| 117 | { |
| 118 | buff[0] = SSD1306_MD_DATA; |
| 119 | } |
| 120 | rt_memcpy(buff + 1, data, len); |
| 121 | msgs.buf = buff; |
| 122 | msgs.len = len + 1; |
| 123 | |
| 124 | if (1 != rt_i2c_transfer(i2c_dev, &msgs, 1)) |
| 125 | { |
| 126 | rt_kprintf("failed to send cmd\n"); |
| 127 | } |
| 128 | rt_free(buff); |
| 129 | buff = NULL; |
| 130 | } |
| 131 | |
| 132 | static int sw_i2c_sample(int argc, char *argv[]) |
| 133 | { |
no test coverage detected