From e1629262864c9c6635a586fb3bc5455156f731e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Wed, 30 Apr 2025 01:06:07 +0800 Subject: [PATCH] =?UTF-8?q?feat(boards):=20arduino=20esp32=E4=BC=A0?= =?UTF-8?q?=E6=84=9F=E5=99=A8=E7=B1=BB=E5=88=AB=E4=B8=8B=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=20`GPS`=20=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 由于SoftwareSerial在arduino esp32下不稳定,因此使用HardwareSerial替代它,默认使用esp32 Serial2 --- .../arduino_esp32/generators/sensor.js | 14 ++- .../arduino_esp32/generators/serial.js | 2 +- .../arduino_esp32/origin/xml/esp32.xml | 117 +++++++++++++----- .../default_src/arduino_esp8266/template.xml | 12 +- 4 files changed, 108 insertions(+), 37 deletions(-) diff --git a/boards/default_src/arduino_esp32/generators/sensor.js b/boards/default_src/arduino_esp32/generators/sensor.js index 486119bf..c5c69492 100644 --- a/boards/default_src/arduino_esp32/generators/sensor.js +++ b/boards/default_src/arduino_esp32/generators/sensor.js @@ -78,4 +78,16 @@ export const ESP_TCS34725_Get_RGB = function (_, generator) { return ['getRGB(\'' + RGB + '\')', generator.ORDER_ATOMIC]; } -export const DS1307_init = ArduinoESP8266SensorGenerators.DS1307_init; \ No newline at end of file +export const DS1307_init = ArduinoESP8266SensorGenerators.DS1307_init; + +export const gps_init = function (_, generator) { + generator.definitions_['include_TinyGPS++'] = '#include '; + generator.definitions_['include_HardwareSerial'] = '#include '; + var rx = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC); + var tx = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC); + var bt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) + generator.definitions_['var_declare_TinyGPSPlus_gps'] = 'TinyGPSPlus gps;'; + generator.definitions_['var_declare_gps_ss'] = 'HardwareSerial gps_ss(2);'; + generator.setups_['setup_serial_gps_ss'] = `gps_ss.begin(${bt}, SERIAL_8N1, ${rx}, ${tx});`; + return ''; +} \ No newline at end of file diff --git a/boards/default_src/arduino_esp32/generators/serial.js b/boards/default_src/arduino_esp32/generators/serial.js index a5b903fc..38d6403c 100644 --- a/boards/default_src/arduino_esp32/generators/serial.js +++ b/boards/default_src/arduino_esp32/generators/serial.js @@ -5,6 +5,6 @@ export const serial_HardwareSerial = function (_, generator) { generator.definitions_['include_HardwareSerial'] = '#include '; var RX = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC); var TX = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC); - generator.setups_['setup_serial_' + serial_select] = '' + serial_select + '.begin(' + content + ',SERIAL_8N1,' + RX + ',' + TX + ');'; + generator.setups_['setup_serial_' + serial_select] = '' + serial_select + '.begin(' + content + ', SERIAL_8N1, ' + RX + ', ' + TX + ');'; return ''; }; \ No newline at end of file diff --git a/boards/default_src/arduino_esp32/origin/xml/esp32.xml b/boards/default_src/arduino_esp32/origin/xml/esp32.xml index 1caf8fd0..d28f222e 100644 --- a/boards/default_src/arduino_esp32/origin/xml/esp32.xml +++ b/boards/default_src/arduino_esp32/origin/xml/esp32.xml @@ -893,6 +893,12 @@ + + + + + + @@ -911,12 +917,6 @@ - - - - - - @@ -924,6 +924,29 @@ + + + + 2 + + + + + 3 + + + + + + + + + 0 + + + + + @@ -1091,35 +1114,71 @@ + + + + 0 + + + + + 2 + + + + + 4800 + + + + + WHILE + + + + + + + + + + + + + location + + + + + Serial + + + location.lat + + + + + Serial + + + location.lng + + + + + + + + + + + - - - - 2 - - - - - 3 - - - - - - - - - 0 - - - - - diff --git a/boards/default_src/arduino_esp8266/template.xml b/boards/default_src/arduino_esp8266/template.xml index 652ed40b..5d20350b 100644 --- a/boards/default_src/arduino_esp8266/template.xml +++ b/boards/default_src/arduino_esp8266/template.xml @@ -802,6 +802,12 @@ + + + + + + @@ -1067,12 +1073,6 @@ - - - - - -