完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用 I***的範例程序(Custom_HID) , 將頻率改成16MHz,
載入我自己的板子,無法啟用HID , 是硬件問題嗎? USBDP => PA12 , USBDM => PA11 , USBGND => GND , USB5V => NC 還有其他要接的嗎? |
|
相关推荐
8个回答
|
|
原來是要把 USB5V 接到 PA9.
|
|
|
|
目前可以收發u***了, 但u*** 只能收2byte , 我從PC送出64byte 資料 , 結果STM 只能一次收2byte , 還有什麼地方要修改?
const uint8_t CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC] = { 0x05, 0x8c, /* USAGE_PAGE (ST Page) */ 0x09, 0x01, /* USAGE (Demo Kit) */ 0xa1, 0x01, /* COLLECTION (Application) */ // The Input report 0x09,0x03, // USAGE ID - Vendor defined 0x15,0x00, // LOGICAL_MINIMUM (0) 0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255) 0x75,0x08, // REPORT_SIZE (8bit) 0x95,0x40, // REPORT_COUNT (64Byte) 0x81,0x02, // INPUT (Data,Var,Abs) // The Output report 0x09,0x04, // USAGE ID - Vendor defined 0x15,0x00, // LOGICAL_MINIMUM (0) 0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255) 0x75,0x08, // REPORT_SIZE (8bit) 0x95,0x40, // REPORT_COUNT (64Byte) 0x91,0x02, // OUTPUT (Data,Var,Abs) 0xc0 /* END_COLLECTION */ }; /* CustomHID_ReportDescriptor */ u***_prop.c void CustomHID_Reset(void) { /* Set Joystick_DEVICE as not configured */ pInformation->Current_Configuration = 0; pInformation->Current_Interface = 0;/*the default Interface*/ /* Current Feature initialization */ pInformation->Current_Feature = CustomHID_ConfigDescriptor[7]; #ifdef STM32F10X_CL /* EP0 is already configured in DFU_Init() by USB_SIL_Init() function */ /* Init EP1 IN as Interrupt endpoint */ OTG_DEV_EP_Init(EP1_IN, OTG_DEV_EP_TYPE_INT, 64); /* Init EP1 OUT as Interrupt endpoint */ OTG_DEV_EP_Init(EP1_OUT, OTG_DEV_EP_TYPE_INT, 64); #else SetBTABLE(BTABLE_ADDRESS); /* Initialize Endpoint 0 */ SetEPType(ENDP0, EP_CONTROL); SetEPTxStatus(ENDP0, EP_TX_STALL); SetEPRxAddr(ENDP0, ENDP0_RXADDR); SetEPTxAddr(ENDP0, ENDP0_TXADDR); Clear_Status_Out(ENDP0); SetEPRxCount(ENDP0, Device_Property.MaxPacketSize); SetEPRxValid(ENDP0); /* Initialize Endpoint 1 */ SetEPType(ENDP1, EP_INTERRUPT); SetEPTxAddr(ENDP1, ENDP1_TXADDR); SetEPRxAddr(ENDP1, ENDP1_RXADDR); SetEPTxCount(ENDP1, 64); SetEPRxCount(ENDP1, 64); SetEPRxStatus(ENDP1, EP_RX_VALID); SetEPTxStatus(ENDP1, EP_TX_NAK); /* Set this device to response on default address */ SetDeviceAddress(0); #endif /* STM32F10X_CL */ bDeviceState = ATTACHED; } u***_endp.c void EP1_OUT_Callback(void) { DataLen = USB_SIL_Read(EP1_OUT, USB_Buffer); // |
|
|
|
我也遇到过这样的问题,其实是参数设置的问题,将OTG_DEV_EP_Init(EP1_IN, OTG_DEV_EP_TYPE_INT, 2);中的2改成64就OK了,这个函数在#include "otgd_fs_dev.h"中。
我改了问题就解决的。现在我在纠结一个问题是,我的USB设备FEATURE报告描述符什么时候发怎么发到主设备上去呀,望哪位指点一下。 |
|
|
|
亲,我改了OTG_DEV_EP_Init(EP1_IN, OTG_DEV_EP_TYPE_INT, 2);这个也是不行,什么问题?
|
|
|
|
顶一个
|
|
|
|
怎么变成乱码了?
|
|
|
|
还需要改最后还需要在u***_desc.c中修改CustomHID_ReportDescriptor[CUSTOMHID_SIZ_REPORT_DESC]中的0x95, 0x01, /* REPORT_COUNT (1) */把0x01修改为要发送数据大小的长度。
完成u***数据长度的修改。 |
|
|
|
没有遇见过 帮顶
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1107 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1055 浏览 2 评论
2159 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1253 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1678 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 06:48 , Processed in 0.707472 second(s), Total 88, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号