2009-06-30 02:05 AM
Virtual COM Port example: when communication is enabled?
2011-05-17 04:10 AM
The Virtual COM Port example on the STM3210E board works well for me even with 2 Hyperterminals :) or 1 Hyperterminal and RS-232C loopback.
I would like starting a transfer of data from the board to PC immediatelly after USB cable is plugged and Virtual COM port is opened by Hyperterminal (or by my test application in the future). I thought that I can call a sending function after while (bDeviceState != CONFIGURED); but a string is probably tried to transfer too early. When the function is called after recepted keystroke from Hyperterminal i.e. if ((count_out != 0) && (bDeviceState == CONFIGURED)) it works. So any idea how to find that connection to host is running?2011-05-17 04:10 AM
This is not a very nice solution, but it works.
Modify your usb_prop.c file. For one vcom:Code:
u32 PortActive = 0; void Virtual_Com_Port_Status_In(void) { if (Request == 0) {PortActive = 0;} if (Request == SET_LINE_CODING) { PortActive = 1; Request = 0; } } For two vcom:Code:
u8 DeviceIndex; u8 Port0Active = 0; u8 Port1Active = 0; void Virtual_Com_Port_Status_In(void) { DEVICE_INFO *pInfo = &Device_Info; //Defined by experience while debug application DeviceIndex = pInfo->USBwIndexs.bw.bb0; if (Request == 0) { if (DeviceIndex == 0) {Port0Active = 0;} if (DeviceIndex == 1) {Port1Active = 0;} } if (Request == SET_LINE_CODING) { if (DeviceIndex == 0) {Port0Active = 1;} if (DeviceIndex == 1) {Port1Active = 1;} Request = 0; } }