Ich verwende einen UART, um mit RS232 auf einem Bluetooth-Modul Roving Networks RN-42 SM zu kommunizieren. Ich habe Sender und Empfänger an einen Logikanalysator angeschlossen.
Das Problem, das ich habe, ist, dass der Logikanalysator anzeigt, dass die TX-Leitung des TX 0 ist, wenn ich den TX meines uC mit dem Roving-Netzwerk RS232 RX verbinde. Wenn ich den RX des Roving Networks-Moduls trenne, beginnt es erneut mit der Datenübertragung.
Die Bilder sind in den Links unten enthalten.
Hier ist mein Sendecode:
while(1)
{
PORTC ^= 0xFF;
transmitStr((unsigned char *)CMDMODE);
_delay_ms(1000);
}
RS-232- und Mikrocontroller-Logikpegel-UART-Signale sind nicht dasselbe. Allgemein werden die Logikpegelsignale zum einen invertiert. Der Leerlaufpegel der Logikpegelleitung ist typischerweise hoch. Auch die Spannungspegel unterscheiden sich erheblich. Die Logikpegelsignale sind natürlich auf normalen Logikpegeln, die normalerweise 0–3,3 V oder 0–5 V betragen. RS-232 liegt unter -5 V für Leitungsruhe (Leerzeichen) und über +5 V für aktiv (Markierung).
Dies ist ein häufiges Problem, daher gibt es Chips, die diese Konvertierung für Sie übernehmen. Suchen Sie nach "MAX232" und Sie werden viele Varianten von verschiedenen Herstellern für Logik-zu-RS-232-Umwandlungschips finden.
Chris Stratton
Edwin
Chris Stratton
Edwin