Другой порт ? Я не силён в тонкостях "железа" ESP32.... Но как может SPI-библиотека вредить UART-ам . и наоборот ... ? С точки зрения инициализации и задействованных ресурсов . Выводы ESP32 никак не "пересекаются"
В моём коде дисплей ST7789 подключен на выводы GPIO,указанные явно .
Так сделано устройство:
DS - GPIO32
RESET - GPIO33
SDA - GPIO25
SCL - GPIO26
CS - -1 для дисплея без CS, или GPIO13 для плат с наличием CS ;
тестировались оба вида TFT-дисплеев . работают одинаково правильно
Соответственно , в коде есть #define с указанием этих выводов .
Тестирование устройства показало что всё инициализируется и работает как нужно.
Для Serial1 (или Serial2 , не важно ) - используются другие ноги , нежели по дефолту :
RX (приём данных ) - GPIO27
TX (передача данных , но нам она не нужна , мы только принимаем поток данных ) - GPIO14
при инициализации UART - скорость , контроль данных , вводы TX/RX задаются верно ; приём и разбор данных осуществляется без проблем . В точном соответствии с протоколом обмена HLW8032 . Что примеры из соотв.библиотеки , что из моего кода .
Разумеется , имеется согласование уровней 5в микросхемы HLW8032 и нашего 3.3в ESP32 . Иначе и данные не проходили бы (в лучшем случае)
Среда разработки - IDE Arduino 2.0 или Platformio - программа ведёт себя одинаково : по отдельности - всё работает . вместе - нет . как только "включаю" дисплей ( tft.init() ) данные в UART либо не доходят либо неверные .... дисплей при этом работает нормально .
Порядок инициализации тоже не влияет .
что
HLW.begin(....);
затем
tft.init();
что наоборот :
tft.init();
HLW.begin();
ничего не меняет в работе .
Как это победить ... ума не приложу
Если нужно , вечером могу скинуть кода программы для тестирования ....