Сообщение от ProtAS-13
|
Перенесите анализ BSY туда, где я написал "=====› Вот ЗДЕСЬ ‹======".
Т.е. в функции "TFT9341_WriteRegister32" у Вас должно ДВА раза анализироваться BSY.
|
Это я, казалось бы, хорошо понял и начал эксперименты именно с этого, т.е. вот так
Нажмите, чтобы открыть спойлер
void TFT9341_WriteRegister32(unsigned char r, unsigned long d)
{
CS_ACTIVE;
CD_COMMAND;
TFT9341_Write8(r);
while (SPI1-›SR & SPI_SR_BSY);
CD_DATA;
TFT9341_Write8(d››24);
TFT9341_Write8(d››16);
TFT9341_Write8(d››
;
TFT9341_Write8(d);
while (SPI1-›SR & SPI_SR_BSY);
}
Но в этом случае вывод происходит настолько медленно и не понятно, что никакого терпения не хватает. Если поточнее, то из той строки, что вывожу, с очень большими интервалами выхватывается какой ни будь символ и быстро выводится. И вообще любая вставка в это место BSY или TXE или RXNE приводит к такому режиму вывода. А может быть что ни будь с инициализацией не так? Спасибо за рисунки, разобрался откуда они. Своих мыслей нет. Жду Вашу крепкую, руководящую руку.