Estoy usando el firmware STM32 VCP y quiero transmitir datos a mi PC desde la placa de descubrimiento STM32F4. La configuración del puerto COM virtual está bien, las propiedades son las siguientes en el administrador de dispositivos:
En inglés: 9600 bit/s, 8 bits de datos, sin paridad, 1 bit de parada, sin control de flujo de hardware. Estoy tratando de recibir caracteres en Realterm con estos parámetros, pero no los obtengo, se parece a lo siguiente:
¿Qué podría hacer mal?
EDITAR:
La MCU envía con el siguiente fragmento de código:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USB_DEVICE_Init();
uint8_t Buf[] = "test";
HAL_Delay(1000);
while (1)
{
CDC_Transmit_FS(Buf, 4);
HAL_Delay(1000);
}
}
La CDC_Transmit_FS
implementación tiene errores (al menos en la versión que estoy viendo):
uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len)
{
uint8_t result = USBD_OK;
/* USER CODE BEGIN 8 */
USBD_CDC_SetTxBuffer(hUsbDevice_0, UserTxBufferFS, Len);
result = USBD_CDC_TransmitPacket(hUsbDevice_0);
/* USER CODE END 8 */
return result;
}
Como puede ver, el Buff
parámetro nunca se usa en la función. Puede intentar modificar la función, copiando Buff
( UserTxBufferFS
usando memcpy
o lo que sea).
memcpy(UserTxBufferFS, Buf, sizeof(char) * Len);
before USBD_CDC_SetTxBuffer(hUsbDevice_0, UserTxBufferFS, Len);
, los datos se transmiten y puedo verlos en RealTerm. :)Buf
pasa a equal UserTxBufferFS
.UserTxBufferFS
con Buf
, aparentemente.
Maryland
Tenk de Milán
Eugenio Sh.
Tenk de Milán
Eugenio Sh.
Eugenio Sh.
Maryland
Eugenio Sh.
Tenk de Milán
Eugenio Sh.
Tenk de Milán
Eugenio Sh.
Eugenio Sh.
Tenk de Milán
Tenk de Milán
Eugenio Sh.
CDC_Transmit_FS
código que estás usando en Pastebin para verificarlo?Tenk de Milán