Forum: Mikrocontroller und Digitale Elektronik HAL_UART_Transmit Problem


von peterpan (Gast)


Angehängte Dateien:

Lesenswert?

Hi, kann mir jemand sagen warum (außer beim ersten) immer ein "\n\n" 
vorab gesendet wird (0x00 0x00) und vorallem, wie ich das verhindere?
1
if (HAL_UART_Transmit(&huart2, (uint8_t *) "SF,1\r\n", 8, 100) != HAL_OK) {
2
    Error_Handler();
3
4
  }
5
  HAL_Delay(500);
6
  /*if (HAL_UART_Transmit(&huart2, (uint8_t *) "+\r\n", 5, 100) != HAL_OK) {
7
    Error_Handler();
8
9
   } */
10
  if (HAL_UART_Transmit(&huart2, (uint8_t *) "SN,TESTABC\r\n", 14, 100)
11
      != HAL_OK) {
12
    Error_Handler();
13
14
  }
15
16
  HAL_Delay(500);
17
  if (HAL_UART_Transmit(&huart2, (uint8_t *) "S-,TESTABC\r\n", 14, 100)
18
      != HAL_OK) {
19
    Error_Handler();
20
21
  }
22
23
  HAL_Delay(500);
24
25
26
  if (HAL_UART_Transmit(&huart2, (uint8_t *) "SR,32000800\r\n", 15, 100)
27
      != HAL_OK) {
28
    Error_Handler();
29
30
  }
31
32
  HAL_Delay(500);
33
34
  if (HAL_UART_Transmit(&huart2, (uint8_t *) "R,1\r\n", 7, 100) != HAL_OK) {
35
    Error_Handler();
36
37
  }
38
39
  HAL_Delay(500);

von Tassilo H. (tassilo_h)


Lesenswert?

peterpan schrieb:
> if (HAL_UART_Transmit(&huart2, (uint8_t *) "SF,1\r\n", 8, 100) !=
> HAL_OK) {

Weil du hier wohl sagst "sende 8 Zeichen", dein String aber nur 6 lang 
ist (\r ist nur EIN Zeichen, ebenso \n !! \n ist das 0x0A, \r das 0x0D 
in deinem Protokoll)

: Bearbeitet durch User
von Nick M. (Gast)


Lesenswert?

peterpan schrieb:
> immer ein "\n\n"
> vorab gesendet wird

Weil du nicht zählen kannst!

von peterpan (Gast)


Lesenswert?

Tassilo H. schrieb:
> (\r ist nur EIN Zeichen, ebenso \n !! \n ist das 0x0A, \r das 0x0D
> in deinem Protokoll)

Natürlich! Danke. Der Wald vor lauter Bäumen und sooo... :-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Das was da gesendet wird ist auch kein \n sondern ein \0. Diese 
Doppelnull wird nicht vorher gesendet, sondern nach dem Zeilenumbruch. 
Und zum Glück ist hinter dem nullterminierten String noch eine 
zusätzliche Null...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.