Ошибка Python IOError: [Errno 90] Слишком длинное сообщение, передача длинного списка в функцию SPIPython

Программы на Python
Ответить
Anonymous
 Ошибка Python IOError: [Errno 90] Слишком длинное сообщение, передача длинного списка в функцию SPI

Сообщение Anonymous »

Я программирую свой A13-OLinuXino-MICRO, используя предоставленный SPI-драйвер pyA13 0.2.2 для отправки данных на ЖК-дисплей. В идеале я хотел бы отправить список, содержащий 320*240*2 (320*240 пикселей, 16 бит на цвет) байтов, которые будут записаны в одной команде непрерывной записи, чтобы обеспечить эффективность скорости. Драйверы в spi.c и spi_lib.c имели 8-битный tx_len, который ограничивал меня 256 байтами, поэтому я изменил их на 32-битные, и это сработало, но теперь я получаю ошибку, когда пытаюсь передать список длиной более 4096 значений в мою функцию spi.write(data[:]). Ниже приведен код, который я использую для заполнения экрана сплошным 16-битным цветом:

Код: Выделить всё

def FillScreen(c):
LCD_SetPos(0, 0, 239, 319)
ch = c>>8 & 0x00FF
cl = c & 0x00FF
d =[]
for x in range (0,76800):
d += [ch, cl]
spi.write(d[:])
Вот ошибка, которую я получаю при запуске функции:

Код: Выделить всё

Traceback (most recent call last):
File "lcd.py", line 205, in 
FillScreen(0x00FF)
File "lcd.py", line 200, in FillScreen
spi.write(d[:])
IOError: [Errno 90] Message too long
Фрагмент кода, который выдает эту ошибку, содержится в spi.c

Код: Выделить всё

/* Send data */
if(spi_write(fd, tx_buffer, tx_len) < 0){
return PyErr_SetFromErrno(PyExc_IOError);
}
Есть ли способ передать более длинное сообщение функции spi.write? Я очень новичок в Python, но вполне комфортно работаю с C, будьте осторожны с моим кодом, пожалуйста... Кроме того, я пробовал зацикливать меньшие сообщения, чтобы заполнить экран, но это занимает слишком много времени. Будем признательны за любую помощь.

Спасибо,
Майкл

Подробнее здесь: https://stackoverflow.com/questions/337 ... i-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»