Replaced blocking SPI framebuffer transmission with DMA-driven transfer.

Replaced blocking spi_write_blocking() framebuffer transfer with DMA.

- Switched SPI to 8-bit mode
- Configured DMA channel with SPI DREQ
- Moved FIFO signaling to DMA completion IRQ
- Removed blocking framebuffer transmission
- Preserved command/data SPI operations
This commit is contained in:
Stanislav N Mikhailov
2026-02-15 18:12:56 +03:00
parent a9eb872c1a
commit 013829cf55
3 changed files with 57 additions and 16 deletions
+3 -1
View File
@@ -4,6 +4,8 @@
#include <stdbool.h>
#include <stdio.h>
#include "hardware/timer.h"
#include "hardware/dma.h"
#define SPI_PORT spi0
@@ -25,7 +27,7 @@ void st7789_send_data(uint8_t data);
void st7789_send_framebuffer(uint16_t *buffer);
void coreEntry();
void st7789_init();
void dma_handler(); //Обработчик завершения DMA
void send_start_signal();
bool wait_for_signal(uint32_t timeout_us, bool level);
void read_dht_data(uint8_t *data);