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?