yzfy123456 发表于 2019-1-31 19:43:11

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);                // 可以成功向电脑发送数据
                        }      
}
}









ZDPHPN 发表于 2019-2-12 09:29:55

HAL库不太会哎,MX_USB_DEVICE_Init();这个函数里看看呢。标准库倒是可以参考http://github.com/zdphpn/STM32-usb

yzfy123456 发表于 2019-2-13 14:49:17

哪位大侠指导一下,非常感谢!
MX_USB_DEVICE_Init(); 是cubemx 自动生成的,没看出什么问题。

yzfy123456 发表于 2019-2-26 19:40:42

问题还没解决,顶一下
页: [1]
查看完整版本: STM32 HID 接收中断问题