打印

请教 GD32F103C8T6 USB 导致HardFault_Handler故障?

[复制链接]
851|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,性能稳定,功耗更低,软硬件完全兼容

使用特权

评论回复
5
cr315| | 2022-10-25 14:52 | 只看该作者
航顺 也可以完全替代 性能稳定,功耗更低,软硬件完全兼容  支持国货

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2051

主题

7441

帖子

10

粉丝