You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I try to migrate USBX CDC ACM to STM32F407ZGT6. Now USB Device can be recognized by Computer as STM32 USB Device.
But I can't read any data from PC host. And I found ux_utility_memory_compare is not right.
/* Compares two memory blocks ux_slave_class_name and _ux_system_slave_class_cdc_acm_name */ux_status=ux_utility_memory_compare(data_interface->ux_slave_interface_class->ux_slave_class_name,
_ux_system_slave_class_cdc_acm_name,
ux_utility_string_length_get(_ux_system_slave_class_cdc_acm_name));
ux_status is always return 255. data_interface->ux_slave_interface_class is NULL.
The full read code is like:
voidusbx_cdc_acm_read_thread_entry(ULONGarg)
{
UX_SLAVE_DEVICE*device;
UX_SLAVE_INTERFACE*data_interface;
UX_SLAVE_CLASS_CDC_ACM*cdc_acm;
ULONGactual_length;
ULONGux_status=UX_SUCCESS;
ULONGsenddataflag=0;
/* Get device */device=&_ux_system_slave->ux_system_slave_device;
while (1)
{
/* Check if device is configured */if (device->ux_slave_device_state==UX_DEVICE_CONFIGURED)
{
/* Get Data interface */data_interface=device->ux_slave_device_first_interface->ux_slave_interface_next_interface;
/* Compares two memory blocks ux_slave_class_name and _ux_system_slave_class_cdc_acm_name */ux_status=ux_utility_memory_compare(data_interface->ux_slave_interface_class->ux_slave_class_name,
_ux_system_slave_class_cdc_acm_name,
ux_utility_string_length_get(_ux_system_slave_class_cdc_acm_name));
/* Check Compares success */if (ux_status==UX_SUCCESS)
{
cdc_acm=data_interface->ux_slave_interface_class_instance;
/* Set transmission_status to UX_FALSE for the first time */cdc_acm->ux_slave_class_cdc_acm_transmission_status=UX_FALSE;
/* Read the received data in blocking mode */ux_device_class_cdc_acm_read(cdc_acm, (UCHAR*)UserRxBufferFS, 3,
&actual_length);
if (actual_length!=0)
{
/* Send the data via UART */// if (HAL_UART_Transmit_DMA(&huart3, (uint8_t *)UserRxBufferFS,// actual_length) != HAL_OK)// {// /* Transfer error in reception process */// Error_Handler();// }/* Wait until the requested flag TX_NEW_TRANSMITTED_DATA is received */if (tx_event_flags_get(&EventFlag, TX_NEW_TRANSMITTED_DATA, TX_OR_CLEAR,
&senddataflag, TX_WAIT_FOREVER) !=TX_SUCCESS)
{
Error_Handler();
}
}
}
}
else
{
tx_thread_sleep(1);
}
}
}
STM32CUBEMX 6.6.1
Firmware FW_F4_V1.27.0
Question
Are there any reasons for "next interface.ux_slave_class_name is NULL"? I can't find any error in my code. Because USB device has been configured correctly. ux_app_parameters_change(VOID *cdc_acm) is also called when connected.
Screenshots
Here is my cubemx screenshots.
The text was updated successfully, but these errors were encountered:
Describe the set-up
I try to migrate USBX CDC ACM to STM32F407ZGT6. Now USB Device can be recognized by Computer as STM32 USB Device.
But I can't read any data from PC host. And I found ux_utility_memory_compare is not right.
ux_status is always return 255.
data_interface->ux_slave_interface_class
is NULL.The full read code is like:
STM32CUBEMX 6.6.1
Firmware FW_F4_V1.27.0
Question
Are there any reasons for "next interface.ux_slave_class_name is NULL"? I can't find any error in my code. Because USB device has been configured correctly. ux_app_parameters_change(VOID *cdc_acm) is also called when connected.
Screenshots
Here is my cubemx screenshots.
The text was updated successfully, but these errors were encountered: