iop789zxc 发表于 2023-5-6 13:06:47

DMA+I2C的方式发送数据到OLED,坐标设置的问题

大佬们,问个比较小白的问题,我之前用的硬件I2C的方式驱动SSD1306,但是感觉显示数据的过程还是比较占用系统时间。所以我就想改为DMA+I2C的方式,参考了“STC32_U8G2_I2C_DMA_OLED”,但是没看明白是怎么设置显示坐标的。
例如,假设要在坐标(0,0)处显示"100",在坐标(20,1)处显示"200",在坐标(30,2)处显示"300"。是把坐标和显示数据都存入缓存还是先设置坐标呢

梁工 发表于 2023-5-6 14:44:36

先设置吸入地址,再DMA写入显示数据。

iop789zxc 发表于 2023-5-7 11:49:00

梁工 发表于 2023-5-6 14:44
先设置吸入地址,再DMA写入显示数据。

你好梁工,可能我描述的不清楚。我的意思是像素点在屏幕上的显示坐标。比如硬件I2C的设置坐标点有以下函数:
void OLED_Set_Pos(unsigned char x, unsigned char y)
{         OLED_WR_Byte(0xb0+y,OLED_CMD);
        OLED_WR_Byte(((x&0xf0)>>4)|0x10,OLED_CMD);
        OLED_WR_Byte((x&0x0f),OLED_CMD);
}             
那么DMA+I2C的方式是如何把要显示的数据在OLED屏幕上和坐标对应的?

梁工 发表于 2023-5-7 16:01:01

iop789zxc 发表于 2023-5-7 11:49
你好梁工,可能我描述的不清楚。我的意思是像素点在屏幕上的显示坐标。比如硬件I2C的设置坐标点有以下函 ...

设置坐标点,就是设置写入地址,先写入地址,然后DMA写入数据。
页: [1]
查看完整版本: DMA+I2C的方式发送数据到OLED,坐标设置的问题