How to setup second independant serial port on Marlin 2.0.9 October 05, 2021 12:22AM |
Registered: 2 years ago Posts: 2 |
Re: How to setup second independant serial port on Marlin 2.0.9 October 05, 2021 12:25AM |
Admin Registered: 13 years ago Posts: 7,013 |
Re: How to setup second independant serial port on Marlin 2.0.9 October 05, 2021 12:33AM |
Admin Registered: 13 years ago Posts: 7,013 |
Re: How to setup second independant serial port on Marlin 2.0.9 October 05, 2021 12:44PM |
Registered: 2 years ago Posts: 2 |
#define LCD_SERIAL_PORT 1 // rs485 port #define LCD_BAUDRATE 9600
#if USING_HW_SERIAL1 UartT Serial2(false, &sercom3, PIN_SERIAL2_RX, PIN_SERIAL2_TX, PAD_SERIAL2_RX, PAD_SERIAL2_TX); void SERCOM3_0_Handler() { Serial2.IrqHandler(); } void SERCOM3_1_Handler() { Serial2.IrqHandler(); } void SERCOM3_2_Handler() { Serial2.IrqHandler(); } void SERCOM3_3_Handler() { Serial2.IrqHandler(); } #endif
// Serial2 #define PIN_SERIAL2_RX (21) #define PIN_SERIAL2_TX (20) #define PAD_SERIAL2_TX (UART_TX_PAD_0) #define PAD_SERIAL2_RX (SERCOM_RX_PAD_1) #define SERCOM_SERIAL2 sercom3
LCD_SERIAL.begin(LCD_BAUDRATE); const millis_t serial_connect_timeout = millis() + 1000UL; while (!LCD_SERIAL.connected() && PENDING(millis(), serial_connect_timeout)) { /*nada*/ } SERIAL_ECHOLN("serial ready");
void writeRS485(char* msg485) { WRITE(71, HIGH); strcat(msg485, "\r\n"); SERIAL_ECHOLN("WRITING 485"); LCD_SERIAL.print(msg485); // Serial2.print(msg485); while (Serial2.availableForWrite() < SERIAL_BUFFER_SIZE - 1) { gcode.dwell(1); } gcode.dwell(2); WRITE(71, LOW); gcode.dwell(50); SERIAL_ECHOLN("reading"); while (LCD_SERIAL.available()) { char in485 = LCD_SERIAL.read(); if (in485 != '\r') SERIAL_CHAR(in485); } }