使用ch32v307移植了一个键盘的程序。
出现的情况是我只有在刚烧录完固件时程序可以正常运行,一旦拔出设备(设备断电)就无法正常运行。想请问一下这种情况可能是因为硬件还是软件导致的
使用ch32v307移植了一个键盘的程序。
出现的情况是我只有在刚烧录完固件时程序可以正常运行,一旦拔出设备(设备断电)就无法正常运行。想请问一下这种情况可能是因为硬件还是软件导致的
您好,若是我们307做键盘设备,断电后无法正常运行,可以从以下几个方法检查一下:
1、检查一下设备断电后MCU的供电电压是否在正常的工作供电电压范围内;
2、若使用外部晶振,可检查一下设备断电后晶振是否还正常起振,若使用内部晶振,可通过MCO引脚测试一下系统此时主频是否正常;
3、注意使用USBD时,系统主频建议配置在48MHz\96MHz\144MHz,此外若使用外部晶振注意程序中HSE的值要和外部晶振的大小匹配;
4、可在HardFault中加打印看一下程序是否进入了HardFault,若进了HardFault,可加打印打印一下macuse、mtval、mepc几个寄存器的值看一下;
此外,可具体和我描述一下你的问题,比如拔出设备后MCU的供电如何供电,该问题是否是百分百复现,若方便可将你的固件或代码发我测试一下,后续的沟通可通过邮箱(lzs@wch.cn)和我继续沟通。
代码部分涉及到了flash的读写,问题不是百分百复现,概率出现。初步怀疑是断电后代码跑飞导致的,我昨天夜里使用wch-link在程序无法正常运行时读到的代码并不完整。
正常运行时读取
运行异常时读取
我已经将最新编译的固件发送给您。感谢您的帮助
您好,已邮件回复你,后续沟通可继续通过邮箱沟通。