MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / ssd1306_write_mult_reg

Function ssd1306_write_mult_reg

bsp/hc32/tests/test_soft_i2c.c:101–130  ·  view source on GitHub ↗

write_reg ssd1306 basic opertion */

Source from the content-addressed store, hash-verified

99
100/* write_reg ssd1306 basic opertion */
101static 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
132static int sw_i2c_sample(int argc, char *argv[])
133{

Callers 3

ssd1306_deinitFunction · 0.85
ssd1306_initFunction · 0.85
mOledWriteCharHnWmFunction · 0.85

Calls 5

rt_mallocFunction · 0.85
rt_memcpyFunction · 0.85
rt_i2c_transferFunction · 0.85
rt_kprintfFunction · 0.85
rt_freeFunction · 0.85

Tested by

no test coverage detected