¿Cómo hacer que arduino 32u4 ignore DTR para USB Serial?

0

Los "puertos seriales USB" basados en 32u4 se niegan a enviar datos a la PC a menos que DTR en el lado del software de la PC esté en alto. Si el software de la PC no establece DTR en verdadero (¿alto?), Entonces Serial.print () en Arduino entra en un agujero negro, y el software nunca recibe las respuestas del Arduino.

Necesito que un paquete de software de terceros funcione con mi dispositivo basado en Arduino Pro Micro. Este software establece DTR en falso, que funciona bien con muchos otros dispositivos. Aruino recibe los datos de la PC muy bien, solo se pierden las respuestas arduino.

Resultado final ... el software puede enviar comandos a mi dispositivo, pero como el software de la PC no establece DTR en verdadero (¿alto?), mis respuestas Serial.print () no se reciben ... el 32u4 esencialmente bloquea las respuestas porque DTR es baja ... aunque los datos en serie van hacia el arduino.

Los microcontroladores PIC y Arduino UNO, etc., no requieren que DTR se coloque alto en el lado de la PC para que el USB serial funcione, los chips FTDI parecen ignorar DTR, por lo que este software de terceros funciona bien con la mayoría de los otros dispositivos.

Modificar mi hardware no es una opción. ¿Cómo puedo, en software / firmware, hackear este dispositivo para ignorar DTR para que este software de PC de terceros pueda ver datos en serie desde el dispositivo?

    
pregunta starvingmind

1 respuesta

1

Hmm, luego de una revisión, investigando la fuente de Arduino para código de serie USB , me parece que la verificación DTR está en la línea 224 (primera línea de size_t Serial_::write(const uint8_t *buffer, size_t size) ). No soy demasiado optimista acerca de deshabilitarlo (probablemente inundarás un búfer), pero vale la pena intentarlo.

    
respondido por el microtherion

Lea otras preguntas en las etiquetas