diff --git a/nucleo-wb55-dongle-ble/Core/Src/main.c b/nucleo-wb55-dongle-ble/Core/Src/main.c index fb29bda..ad845fd 100644 --- a/nucleo-wb55-dongle-ble/Core/Src/main.c +++ b/nucleo-wb55-dongle-ble/Core/Src/main.c @@ -23,7 +23,7 @@ /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ - +#include "usbd_cdc_if.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -55,7 +55,9 @@ static void MX_GPIO_Init(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ - +void usb_receive(uint8_t *buf, uint32_t *len) { + CDC_Transmit_FS(buf, *len); // echo +} /* USER CODE END 0 */ /** diff --git a/nucleo-wb55-dongle-ble/USB_Device/App/usbd_cdc_if.c b/nucleo-wb55-dongle-ble/USB_Device/App/usbd_cdc_if.c index 88aa4e0..1a107b5 100644 --- a/nucleo-wb55-dongle-ble/USB_Device/App/usbd_cdc_if.c +++ b/nucleo-wb55-dongle-ble/USB_Device/App/usbd_cdc_if.c @@ -32,7 +32,7 @@ /* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*/ - +uint8_t buffer[7]; /* USER CODE END PV */ /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY @@ -129,7 +129,7 @@ static int8_t CDC_Receive_FS(uint8_t* pbuf, uint32_t *Len); static int8_t CDC_TransmitCplt_FS(uint8_t *pbuf, uint32_t *Len, uint8_t epnum); /* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */ - +__weak void usb_receive(uint8_t *buf, uint32_t *len) {} /* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */ /** @@ -221,10 +221,16 @@ static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length) /* 6 | bDataBits | 1 | Number Data bits (5, 6, 7, 8 or 16). */ /*******************************************************************************/ case CDC_SET_LINE_CODING: + for (int i = 0; i< 7; i++) { + buffer[i] = pbuf[i]; + } break; case CDC_GET_LINE_CODING: + for (int i = 0; i< 7; i++) { + pbuf[i] = buffer[i]; + } break; @@ -264,6 +270,7 @@ static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) /* USER CODE BEGIN 6 */ USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); USBD_CDC_ReceivePacket(&hUsbDeviceFS); + usb_receive(Buf, Len); return (USBD_OK); /* USER CODE END 6 */ } diff --git a/nucleo-wb55-dongle-ble/USB_Device/App/usbd_cdc_if.h b/nucleo-wb55-dongle-ble/USB_Device/App/usbd_cdc_if.h index fabb17a..56b3657 100644 --- a/nucleo-wb55-dongle-ble/USB_Device/App/usbd_cdc_if.h +++ b/nucleo-wb55-dongle-ble/USB_Device/App/usbd_cdc_if.h @@ -110,7 +110,7 @@ extern USBD_CDC_ItfTypeDef USBD_Interface_fops_FS; uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len); /* USER CODE BEGIN EXPORTED_FUNCTIONS */ - +__weak void usb_receive(uint8_t *buf, uint32_t *len); /* USER CODE END EXPORTED_FUNCTIONS */ /** diff --git a/serial_communication.py b/serial_communication.py index 1f69a1f..2270c6d 100644 --- a/serial_communication.py +++ b/serial_communication.py @@ -29,6 +29,7 @@ def main(): logger.info(f"received: {x}") logger.info(f"in_waiting: {serial_connection.in_waiting}") + return delay = 0.1 while True: logger.info("Set blue LED")