Closed 1696774082 closed 1 year ago
Hello, thank you very much for using our driver. For operations that require simultaneous multi-point drawing, we suggest drawing in GRAM first and then updating to the screen. An example of drawing lines is as follows:
/**
* @brief basic example write line
* @param[in] x0 is the coordinate x0
* @param[in] x1 is the coordinate x1
* @param[in] y is the coordinate y
* @param[in] data is the written data
* @return status code
* - 0 success
* - 1 write line failed
* @note none
*/
uint8_t ssd1306_basic_write_line(uint8_t x0, uint8_t x1, uint8_t y, uint8_t data)
{
uint8_t res;
uint8_t i;
for (i = x0; i <= x1; i++)
{
/* write point in gram */
res = ssd1306_gram_write_point(&gs_handle, i, y, data);
if (res != 0)
{
return 1;
}
}
/* update gram */
if (ssd1306_gram_update(&gs_handle) != 0)
{
return 1;
}
return 0;
}
您好,非常感谢使用我们的驱动,对于需要同时多点绘制的操作,我们更建议先在GRAM中绘制最后再更新到屏幕,画线的一个例子如下:
/**
* @brief basic example write line
* @param[in] x0 is the coordinate x0
* @param[in] x1 is the coordinate x1
* @param[in] y is the coordinate y
* @param[in] data is the written data
* @return status code
* - 0 success
* - 1 write line failed
* @note none
*/
uint8_t ssd1306_basic_write_line(uint8_t x0, uint8_t x1, uint8_t y, uint8_t data)
{
uint8_t res;
uint8_t i;
for (i = x0; i <= x1; i++)
{
/* write point in gram */
res = ssd1306_gram_write_point(&gs_handle, i, y, data);
if (res != 0)
{
return 1;
}
}
/* update gram */
if (ssd1306_gram_update(&gs_handle) != 0)
{
return 1;
}
return 0;
}
Please ask your question
无法画直线
Additional context
No response