Comments 14
Странно, мне казалось, что трансрефлективный дисплей по определению должен быть LCD, никак не OLED.
+1
Да-да, помню, на изиэлектрониксе его «раскуривали», но так и не «раскурили». И SSD1238 действительно контроллер для TFT
0
И в 2020 году мы по прежнему будем видеть тексты вроде
GPIOA->MODER |= (GPIO_MODER_MODE5_1 | GPIO_MODER_MODE6_1 | GPIO_MODER_MODE7_1);мда.
-1
void stm32f407_spi::stm32f407_spi_send(uint8_t data)
{
SPI1->DR = data;
while((SPI1->SR & SPI_SR_BSY)) continue;
}
Этого достаточно чтобы SPI заработал в нужном нам режиме и передавал данные на максимально возможной скорости.
К сожалению здесь максимально возможная скорость не будет достигнута
0
Вы про бит TX is empty? С ним, к сожалению, с данным экраном работать не получается, хотя осциллограммы корректные.
0
Тут (на хабре) некоторое время назад была статья про то, как достигать максимальной скорости из SPI (даже без DMA). Сколько помню, все свелось к тому, что нужно проверять флаг того, что данные передались из DR во внутренний сдвиговый и сам DR сейчас «пуст» (в него можно писать). И, по сути, за счет этого достигается эффект непрерывной передачи. Типа данные еще передаются, а мы уже заготовили в DR следующую пачку. Ну а вообще лучше DMA конечно. Но это чуть усложнит пример (ИМХО).
0
А, и самое главное. Проверять перед отправкой, а не после. Чтобы по-максимуму использовать SPI время.
0
Зачем это шаманство с кучей массивов и указателями на массивы, когда можно делать так, как делают другие уже сто лет? Цифра ноль это код 48 в формате asc2. Далее делаем двумерный массив, где нулевой элемент это цифра ноль, первый элемент цифра один, второй элементы цифра два и так далее. При парсинге строки *char мы просто вычитаем из символа значение 48 и подставляем в массив.
+1
Sign up to leave a comment.
Articles
Change theme settings
Запускаем трансфлективный TFT дисплей на SSD1283A с помощью STM32