#include #include void lcd_send_stop_bit() { #ifdef ENABLE_INTERNAL_LCD Serial.write(0xFF); Serial.write(0xFF); Serial.write(0xFF); #endif } void lcd_send_command(String command) { #ifdef ENABLE_INTERNAL_LCD lcd_send_stop_bit(); Serial.print(command); lcd_send_stop_bit(); #endif } void lcd_reset() { #ifdef ENABLE_INTERNAL_LCD lcd_send_stop_bit(); lcd_send_command("rest"); lcd_send_stop_bit(); #endif } void lcd_init() { #ifdef ENABLE_INTERNAL_LCD lcd_reset(); delay(750); #endif } bool lcd_upload_start(size_t size) { Serial.begin(115200); lcd_send_stop_bit(); Serial.print("rest"); lcd_send_stop_bit(); Serial.print("connect"); lcd_send_stop_bit(); delay(1000); Serial.print("whmi-wri 1024,115200,res0"); lcd_send_stop_bit(); lcd_wait_ack(); } bool lcd_upload_write(uint8_t *data, size_t size) { for (int i = 0; i < size; i++) { Serial.write(data[i]); } } bool lcd_wait_ack() { bool data_ok = false; for (int i; i < 50; i++) { if (Serial.read() == 0x05) { data_ok = true; break; } delay(100); } return data_ok; }