本帖最后由 hehung 于 2023-2-4 18:02 编辑
过往分享
【iMOTION2go套件】1. 开箱
【iMOTION2go套件】2. MCEWizard工具使用+控制脚本分析
【iMOTION2go套件】3. MCEDesigner工具使用
【iMOTION2go套件】4. 控制脚本编写之LED控制
前言
有段时间没更新了,主要是过年期间回了老家,日程安排太满了,基本上没有空闲下来一天。开工上班之后工作也比较繁忙,趁着周末,抽出时间来继续学习学习IMOTIONGo开发板的使用。
上一篇帖子也只是试验了一下控制脚本的,编写了一个控制LED的脚本代码。但是最近发现了一个问题,导致不能使用MCEDesigner监控电机状态,MCEDesigner会拒绝获取寄存器,详见下文描述。
导致该问题的原因是什么我也不清楚,但是总算是找到了绕过该问题的办法,详见下文描述。
问题描述
单片机里面下载的是编写的控制LED闪烁(电机没控制,不动作)的脚本,我期望使用MCEDesigner来调试电机,通过控制寄存器让电机转动,但是打开MCEDesigner之后,连接上串口却显示版本不匹配,见下图:
然后打开串口连接窗口,可以看到版本确实不匹配。
如果忽略这个信息,直接点击trace窗口监控或者Function窗口调试的话,会提示"寄存器获取被禁止"。
不知道该问题是什么原因导致的。我查看了脚本,并没有对版本号进行设置的地方。而且对于我的脚本和官方提供的脚本,按照统一流程编译,下载,就会出现我的脚本不能用MCEDesigner调试(但是运行正常),而官方提供的脚本可以正常调试。
如果哪位小伙伴知道原因,可以分享一下,谢谢。
问题绕过方法
不能使用MCEDesginer进行在线调试确实很不方便,电机的功能都不能进行验证,那这块板子也就失去了它的意义,所以我做了一些尝试,期望解决这个问题,没想到还真的找到了绕过的方法。
这个方法只是绕过这个问题,并没有实际解决这个问题。
尝试过程
尝试过程作为一个经验分享一下吧,确实浪费了很多时间,一直被这个问题卡住了太长时间。
从上述的问题描述中可以知道,该问题肯定出现在脚本上,所以我就从脚本出发,通过修改官方提供的脚本,一点一点的修改/编译/下载,尝试发现问题,最后发现是两个全局变量导致的。
如下,如果删除这两个全局变量中的任何一个,都会有问题,会导致版本被改变:
删除其中一个全局变量,可以看到版本号被改变了,删除两个全局变量之后,版本号变为了0。
解决方法
这个问题产生的原因是什么,我也不清楚,所以在后续脚本编写过程中别删除这两个变量就行了。
总结
我理解的这个问题应该是一个bug,期望能够得到有效的回复。
如果有其他小伙伴被这个问题困扰,可以尝试按照我的方式绕过一下。