Hallo Leute. Ich bin echt ratlos, desswegen wende ich mich an euch.
Ich habe 2 Boards mit je einem STM32F051K4U6 Kontroller, die ich mit
RS485 UART verbinden muss.
Ich möchte auf dem einen Input Pins einlesen und auf dem anderen die
Signale als Output ausgeben.
Als RS485 Anbindung ist je ein MAX-3078 EESA im Einsatz.
Nun hab ich zum Test zwei Firmware, eine zum senden und eine zum
empfangen.
Diejenige die sendet sollte in Ordnung sein, ich hab am MAX-3078 des
Empfängerboards das Signal mit dem Oszilloskop messen können.
Aber der Empfänger verarbeitet das Signal nicht weiter.
Hier der Teil bei dem ich nicht sicher bin:
1 | while (1)
|
2 | {
|
3 | GPIO_WriteBit(RS485_DIR,Bit_RESET);
|
4 |
|
5 | while(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET)
|
6 | {}
|
7 |
|
8 |
|
9 |
|
10 | if(USART_ReceiveData(USART2) == 'X')
|
11 | {
|
12 | GPIO_WriteBit(Output1,Bit_SET);
|
13 | GPIO_WriteBit(Output2,Bit_SET);
|
14 | }
|
15 | else
|
16 | {
|
17 | GPIO_WriteBit(Output1,Bit_RESET);
|
18 | GPIO_WriteBit(Output2,Bit_RESET);
|
19 | }
|
20 | }
|
21 | }
|
Die ganzen Firm's im Anhang.
Vielen Danke für Tipps!