使用STM32CubeMX产生ThreadX和USBX代码后还需要的修改 2、 在app_azure_rtos.c中的VOIDtx_application_define(VOID *first_unused_memory)函数建立了1024bytes的bytePool给USBX使用 if(tx_byte_pool_create(&ux_device_app_byte_pool, "Ux App memorypool", ux_device_byte_pool_buffer, UX_DEVICE_APP_MEM_POOL_SIZE) !=TX_SUCCESS),其中的UX_DEVICE_APP_MEM_POOL_SIZE定义为1024,但在app_usbx_device.c的UINT MX_USBX_Device_Init(VOID *memory_ptr)函数中要在这个bytePool中分配4096的存储块,所以需要将上面的UX_DEVICE_APP_MEM_POOL_SIZE定义为(8*1024)才能正常工作。 3、 修改uint8_t USBD_HID_MOUSE_ReportDesc[USBD_HID_MOUSE_REPORT_DESC_SIZE]为双向64字节HID通信,但现在PC可以发送数据(首字节丢失,5次发送后没有响应)不能接收数据,是因为发送数据字节超过63字节,最多只能发送63字节。收发的首个字节都是协议加入的内容,不能发送用户内容。 4、现在的问题就是通过UINT app_usbx_device_thread_hid_callback()函数可以看到PC传来的数据,但处理方法不对,导致PC端发送几次后,USBX停止响应。
|