Encontré que al usar el constructor ILI9327, en efecto se puede activar la pantalla ILI9341 a 16 bits, sin embargo, los pixeles de la pantalla parecen desplazarse y da la impresión de que solo funciona una parte de la pantalla. Hay que modificar los pixeles del ILI9327, para asignar el tamaño de la ILI9341 que corresponde a 320x240.
Vi que al dejar la pantalla ILI9341 conectada varias horas con esa modificación, se quedaba en blanco, y se debía desconectar y conectar de la alimentación.
Modifiqué la libreria UTFT, partiendo de la premisa que los registros de inicio de la pantalla conectada por s5p para el controlador ILI9341, tienen que ser idénticos para 16 bits. Ya no hice pruebas con s4p.
La libreria UTFT modificada, accede a los registros especificos del ILI9341, no los del ILI9327, como muchos sugieren que se conecte. Es decir, cuenta con un constructor específico para el ILI9341 a 16 bits, sin tocar nada del ILI9327.
Con la libreria modificada, se puede dejar conectada la pantalla el tiempo que se desee, sin correr el riesgo de que se quede en blanco.
PD: así termina la identificación de hardware, en el archivo UTFT.ccp de la libreria original UTFT
#ifndef DISABLE_CPLD
#include "tft_drivers/cpld/initlcd.h"
#endif
#ifndef DISABLE_HX8353C
#include "tft_drivers/hx8353c/initlcd.h"
#endif
}
Así termina el selector que modifiqué, incluso dejé una definición de pantalla con la que hice las pruebas
#ifndef DISABLE_CPLD
#include "tft_drivers/cpld/initlcd.h"
#endif
#ifndef DISABLE_HX8353C
#include "tft_drivers/hx8353c/initlcd.h"
#endif
#ifndef DISABLE_STARX
#include "tft_drivers/starx/initlcd.h"
#endif
#ifndef DISABLE_ILI9341_16
#include "tft_drivers/ili9341/16B/initlcd.h"
#endif
}
Ahora que lo pienso, tal vez los pantallazos blancos estaban relacionados con el cableado. Por cierto la libreria modificada, en efecto también puede funcionar con el ILI9327, dejé las modificaciones que se mencionan en la red.