Другой порт ?  Я не силён в тонкостях "железа"  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();
ничего не меняет в работе .
Как это победить ... ума не приложу
Если нужно , вечером могу скинуть  кода программы для тестирования ....