完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的是STM32f107的芯片,移植了STM32_USB-Host-Device_Lib_V2.2.0 官方usb固件库,实现了两个接口的hid 组合设备(通过修改msc-hid复合设备例程)在UCOSII操作系统中运行,目前接口1(端点1)上传报文没有问题,但是接口2(端点2)在接收PC下发的报文时出现死机,程序转到硬件错误中断,pc机下发数据长度为64字节
接收和发送SIZE定义如下: #define Interface1_EPIN_SIZE 64 #define Interface2_EPOUT_SIZE 64 fifo长度定义如下: #define RX_FIFO_FS_SIZE 128 #define TX0_FIFO_FS_SIZE 64 #define TX1_FIFO_FS_SIZE 64 #define TX2_FIFO_FS_SIZE 64 堆栈定义如下: Stack_Size EQU 0x00002000 Heap_Size EQU 0x00002000 经过定位发现出错位置在 DCD_HandleRxStatusQueueLevel_ISR(USB_OTG_CORE_HANDLE *pdev)调用的USB_OTG_ReadPacket(pdev,ep->xfer_buff, status.b.bcnt)函数中; 该函数源代码如下: void *USB_OTG_ReadPacket(USB_OTG_CORE_HANDLE *pdev, uint8_t *dest, uint16_t len) { uint32_t i=0; uint32_t count32b = (len + 3) / 4; __IO uint32_t *fifo = pdev->regs.DFIFO[0]; for( i = 0; i < count32b; i++) { *(__packed uint32_t *)dest = USB_OTG_READ_REG32(fifo); dest += 4 ; } return ((void *)dest); } 当执行到 *(__packed uint32_t *)dest = USB_OTG_READ_REG32(fifo)时进入硬件错误中断,不知道有没有朋友遇到过这个问题。 |
|
相关推荐
1个回答
|
|
通过将USB_OTG_ReadPacket(pdev,ep->xfer_buff, status.b.bcnt)函数修改如下的到解决:
typedef union { uint32_t USB_32byte; uint8_t USB_8byte[4]; } Rx_usb; Rx_usb Rx_data[64]; void *USB_OTG_ReadPacket(USB_OTG_CORE_HANDLE *pdev, uint8_t *dest, uint16_t len) { uint32_t i=0; uint32_t count32b = (len + 3) / 4; u8 j=0; __IO uint32_t *fifo = pdev->regs.DFIFO[0]; for( i = 0; i < count32b; i++) { if( len == 64) { Rx_data.USB_32byte = USB_OTG_READ_REG32(fifo); } else { *(__packed uint32_t *)dest = USB_OTG_READ_REG32(fifo); } dest += 4 ; } return ((void *)dest); } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1816 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1631 浏览 1 评论
1098 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
739 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1691 浏览 2 评论
1950浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
753浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
585浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
568浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 22:24 , Processed in 0.630008 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号