你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 HID 接收中断问题

[复制链接]
yzfy123456 提问时间:2019-1-31 19:43 /
MCU芯片: STM32F407
工程:使用 USB HID 实现双向通信

      采用 CubeMX 生成的 USB HID 工程,并且更新了报告描述符,已实现了向电脑一次发送64个字节的功能。但是从电脑下发数据时,一直没有响应,在接收中断函数里面,设了收到数据,指示灯就会闪一下,但是没看到有闪。
      哪位大侠指点一下,非常感谢!
      我看了 CubeMX 生成的代码中,main() 函数里,没有看到有打开USB接收中断的程序,是不是没有打开? 要怎么打开??

/** Usb HID report descriptor. */
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __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);                // 可以成功向电脑发送数据
                        }        
  }
}









收藏 1 评论3 发布时间:2019-1-31 19:43

举报

3个回答
ZDPHPN 回答时间:2019-2-12 09:29:55
HAL库不太会哎,MX_USB_DEVICE_Init();这个函数里看看呢。标准库倒是可以参考http://github.com/zdphpn/STM32-usb

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

yzfy123456 回答时间:2019-2-13 14:49:17
哪位大侠指导一下,非常感谢!
MX_USB_DEVICE_Init(); 是cubemx 自动生成的,没看出什么问题。
yzfy123456 回答时间:2019-2-26 19:40:42
问题还没解决,顶一下

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版