STM32F103 开发USB设备端点超过ENDP4以上时崩溃问题的解决

开发STM32F103的符合USB设备或者类似程序时有时会遇到端点序号超过ENDP4的情况,此时建立过程应该是没问题的,只是当发送用户数据时运行到UserToPMABufferCopy时会进入HardFault_Handler,解决这个问题,需要修改ENDP0_RXADDR和ENDP0_TXADDR的值,在usb_conf.h中,将下面原来的值

复制代码
/* buffer table base address */
/* buffer table base address */
#define BTABLE_ADDRESS      (0x00)

/* EP0  */
/* rx/tx buffer base address */
#define ENDP0_RXADDR        (0x18)
#define ENDP0_TXADDR        (0x58)

修改为:

复制代码
/* buffer table base address */
/* buffer table base address */
#define BTABLE_ADDRESS      (0x00)

/* EP0  */
/* rx/tx buffer base address */
#define ENDP0_RXADDR        (0x20)
#define ENDP0_TXADDR        (0x60)

也就是宽度增加了8个字节,后面每增加一个端口,都要增加这个宽度。

相关推荐
QMCY_jason10 小时前
RK3588 usb摄像头 mipi摄像头 hdmi in 调试记录
单片机·嵌入式硬件
国科安芯11 小时前
四重证据,一条逻辑链:商业航天级微控制器MCU抗辐射验证方法学综述——以国科安芯AS32S601为例
人工智能·单片机·嵌入式硬件·mcu·安全·抗辐射
玄芯散人14 小时前
【元婴·100】STM32启动流程:从上电到main()经历了什么
stm32·单片机·嵌入式硬件
恒锐丰科技林技术员15 小时前
EG3525S 推挽半桥 PWM 控制芯片解析与工程应用
经验分享·嵌入式硬件·硬件工程
科芯创展17 小时前
XZ5129:单节锂电池供电36V升压LED恒流驱动芯片设计解析
stm32·单片机·嵌入式硬件
恒锐丰科技林技术员18 小时前
EG44273 低侧单通道栅极驱动芯片解析
经验分享·嵌入式硬件·硬件工程
✎ ﹏梦醒͜ღ҉繁华落℘18 小时前
单片机基础知识 --keil文件乱码,如何转换编码方式?
单片机·嵌入式硬件
羊羊一洋18 小时前
ROM&RAM
c语言·stm32·学习
创界工坊工作室19 小时前
41-基于STC89C52的避障循迹小车
stm32·单片机·嵌入式硬件·51单片机·proteus
weixin_4640780719 小时前
开关电源,反激中rcd电路快速选型
单片机·嵌入式硬件