VCP Read - Still unclear
I am using the STM32F072B-Discovery board and used the CDC_Standalone example to communicate with the PC using a Virtual Serial Port. I am using the VCP driver from the website.
I can send data from the microcontroller to the hyperterminal/putty running on the PC using these commands. I can see the data on the console and it works perfectly.
memcpy(UserBuffer, ''123'', sizeof(char) * 3); USBD_CDC_SetTxBuffer(&USBD_Device, UserBuffer, 3); USBD_CDC_TransmitPacket(&USBD_Device)Unfortunately, I am still not clear on how to read data send from hyperterminal/putty to the microcontroller.
I know that I am receiving the data.In the function CDC_Itf_Receive(), I added toggles to the LEDs and I can see the LED's toggling as I type in the putty console.
static int8_t CDC_Itf_Receive(uint8_t* Buf, uint32_t *Len)
{ if (Buf[0] == '1') BSP_LED_Toggle(LED_GREEN);if (*Len == 1)
BSP_LED_Toggle(LED_ORANGE);HAL_UART_Transmit_DMA(&UartHandle, Buf, *Len);
return (USBD_OK); }However, I am still unclear on how to read the data in the main() subroutine.
I know that Buf and *Len contain the information that I need in CDC_Itf_Receive() function. Should I copy those values to a global buffer and then use those values in main()What I basically want is to monitor for any data from putty in main()
main()
...
if (LengthOfDataReceived != 0)
{ if (!strcmp(BufferReceived, ''ABCD'')) DoABCD(); else DoEFGH(); } } #vcp-read-receive