У меня дисплей 128х64 пикселей.Текущее изображение на дисплее сохраняется в
uint8_t bufferOLED[(HEIGHT * WIDTH / 8)+1]; // uint8_t bufferOLED[1025];
Если я загружаю bufferOLED с помощью strcpy и печатаю для отображения, все работает нормально.
Теперь я хочу инициализировать bufferOLED некоторым логотипом, который будет отображаться призагрузка приложения.
uint8_t bufferOLED[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //1
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //2
...
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, //49
0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, //50
...
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //100
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //101
0x00, 0x00, 0x00, 0x00 //102
}
Логотип печатается нормально, но после того, как я загружаю bufferOLED с другим содержимым и печатаю для отображения, изображение на дисплее повреждено.
При записи на дисплей я просто отправляюbufferOLED с некоторыми командами для OLED:
for(int i=0; i<1024; i+=16) twiPrint(OLED, 0x40, bufferOLED+i, 16); //twiPrint(uint8_t twiAddress, uint8_t twiCommand, uint8_t *twiTransmitData, uint8_t twiTransmitDataLen)
Я знаю, что для завершения строки используется символ NULL.Так допускается ли инициализация с использованием комбинации символов NULL и NULL?