请教 GD32F103C8T6 USB 导致HardFault_Handler故障?

[复制链接]
960|4
 楼主| 两只袜子 发表于 2022-7-26 09:25 | 显示全部楼层 |阅读模式
使用的STM32_USB-FS-Device_Driver库,创建HID,和模拟键盘Keyboard。工作中根据需要模拟键盘发送一批字符串。
也按照网上找的移植文档进行了更改。

相关代码:
UserToPMABufferCopy(keyboardCodeBuf, GetEPTxAddr(ENDP3), 8); //发8个字节
SetEPTxCount(ENDP3, 8);
SetEPTxValid(ENDP3);

经过调试发现,GetEPTxAddr(ENDP3),如果返回0x01F0,就能正常工作。
有时会返回0xC36C,0xC34C ,则在进入函数UserToPMABufferCopy中后会跳转到HardFault_Handler。

反复测试,一段时间都是返回0x01F0,工作完全正常
又可能一段时间,返回0xC36C,0xC34C,则会产生硬件故障中断。
有时上位机PC会产生无法识别的USB设备提示。

请指导故障原因。
AnkerSong 发表于 2022-7-27 16:57 | 显示全部楼层
UserToPMABufferCopy……
把大数组设成全局变量,不要在函数内部初始化大数组。
AnkerSong 发表于 2022-7-27 16:59 | 显示全部楼层
大数组不一定是在这个函数里,你好好排查一下所有函数,八成是堆栈溢出了。
jcky001 发表于 2022-10-25 14:52 | 显示全部楼层
可以选用NS32F103CBT6来替代进口STM32F103C8T6,性能稳定,功耗更低,软硬件完全兼容
cr315 发表于 2022-10-25 14:52 | 显示全部楼层
航顺 也可以完全替代 性能稳定,功耗更低,软硬件完全兼容  支持国货
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2122

主题

8121

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部