Forum: Projekte & Code STM32WBA55 - BLE_p2pServer - Wie kann ich Daten an die UART weiterleiten?


von M. G. (ixil96)


Lesenswert?

Ich verwende das BLE_p2pServer Beispiel als Grundlage und möchte die 
übertragenen Daten direkt an die UART1 Schnittstelle weiterleiten. Meine 
Idee wäre hier (in p2p_server_app.c) eine HAL_UART_Transmit_DMA() 
Funktion zu verwenden, allerdings scheitere ich beim Zugriff auf die 
Daten aufgrund einer fehlerhaften Typkonvertierung.
1
case P2P_SERVER_LED_C_WRITE_NO_RESP_EVT:
2
      /* USER CODE BEGIN Service1Char1_WRITE_NO_RESP_EVT */
3
      if(p_Notification->DataTransfered.p_Payload[1] == 0x01)
4
      {
5
      // HAL_UART_Transmit_DMA(huart, pData, Size);...Hier sollen Daten weitergeleitet werden
6
        BSP_LED_On(LED_BLUE);
7
        LOG_INFO_APP("-- P2P APPLICATION SERVER : LED1 ON\n"); 
8
        P2P_SERVER_APP_Context.LedControl.Led1 = 0x01; /* LED1 ON */
9
      }
10
      if(p_Notification->DataTransfered.p_Payload[1] == 0x00)
11
      {
12
        BSP_LED_Off(LED_BLUE);
13
        LOG_INFO_APP("-- P2P APPLICATION SERVER : LED1 OFF\n"); 
14
        P2P_SERVER_APP_Context.LedControl.Led1 = 0x00; /* LED1 OFF */
15
      }
16
      /* USER CODE END Service1Char1_WRITE_NO_RESP_EVT */
17
      break;

Die Typdefinitionen befinden sich in p2p_server.h:
1
typedef struct
2
{
3
  uint8_t *p_Payload;
4
  uint8_t Length;
5
} P2P_SERVER_Data_t;
6
7
typedef struct
8
{
9
  P2P_SERVER_OpcodeEvt_t       EvtOpcode;
10
  P2P_SERVER_Data_t             DataTransfered;
11
  uint16_t                ConnectionHandle;
12
  uint16_t                AttributeHandle;
13
  uint8_t                 ServiceInstance;
14
} P2P_SERVER_NotificationEvt_t;

Kann mir jemand weiter helfen?

von Harald K. (kirnbichler)


Lesenswert?

M. G. schrieb:
> allerdings scheitere ich beim Zugriff auf die
> Daten aufgrund einer fehlerhaften Typkonvertierung.

Welche Daten willst Du denn übertragen? Das, was in p_Payload drinsteht?

Oder nur einen Teil davon?

Wo ist Deine "fehlerhafte Typkonvertierung"?

Nachtrag:

Du hast den falschen Forenbereich ausgesucht, um Deine Frage zu 
stellen.

: Bearbeitet durch User
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.