STM32 HID 接收中断问题
MCU芯片: STM32F407工程:使用 USB HID 实现双向通信
采用 CubeMX 生成的 USB HID 工程,并且更新了报告描述符,已实现了向电脑一次发送64个字节的功能。但是从电脑下发数据时,一直没有响应,在接收中断函数里面,设了收到数据,指示灯就会闪一下,但是没看到有闪。
哪位大侠指点一下,非常感谢!
我看了 CubeMX 生成的代码中,main() 函数里,没有看到有打开USB接收中断的程序,是不是没有打开? 要怎么打开??
/** Usb HID report descriptor. */
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS __ALIGN_END =
{
/* USER CODE BEGIN 0 */
0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)
0x09, 0x01, // USAGE (Vendor Usage 1)
0xA1, 0x01, // COLLECTION (Application)
0x09, 0x01, // USAGE (Vendor Usage 1)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xFF, 0x00, // LOGICAL_MAXIMUM (255)
0x95, 0x40, // REPORT_COUNT (64)
0x75, 0x08, // REPORT_SIZE (8)
0x81, 0x02, // INPUT (Data,Var,Abs)
0x09, 0x01, // USAGE (Vendor Usage 1)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xFF, 0x00, // LOGICAL_MAXIMUM (255)
0x95, 0x40, // REPORT_COUNT (64)
0x75, 0x08, // REPORT_SIZE (8)
0x91, 0x02, // OUTPUT (Data,Var,Abs)
0xC0 /* END_COLLECTION */
};
int main(void)
{
uint8_t i;
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM2_Init();
MX_IWDG_Init();
MX_USART3_UART_Init();
MX_ADC1_Init();
MX_USB_DEVICE_Init();
HAL_TIM_Base_Start_IT(&htim2);
__HAL_UART_ENABLE_IT(&huart3, UART_IT_RXNE);
for(i=0;i<64;i++)
USB_Tx_Buf = i;
while (1)
{
HAL_IWDG_Refresh(&hiwdg);
UART3_Rx_Fun();
if(HB_Clock >= 1)
{
HB_Clock = 0;
USBD_CUSTOM_HID_SendReport(&hUsbDeviceFS,USB_Tx_Buf,64); // 可以成功向电脑发送数据
}
}
}
HAL库不太会哎,MX_USB_DEVICE_Init();这个函数里看看呢。标准库倒是可以参考http://github.com/zdphpn/STM32-usb 哪位大侠指导一下,非常感谢!
MX_USB_DEVICE_Init(); 是cubemx 自动生成的,没看出什么问题。 问题还没解决,顶一下
页:
[1]