串口监视器和烧写在点击后都出现了这个错误提示: 请问如何解决 @admin
@123485k
在安装目录下找到 serial_monitor.exe, 放到 cmd 直接运行一下, 看一下结果
serial_monitor.exe
正常就是下面这样的,会返回一个 JSON 值:
admin 是正常的 但是VScode里面不能用
123485k
使用 mono.exe 运行 serial_monitor.exe,不要直接运行
在cmd窗口中有两个不正常显示的字符
有什么方法可以获得eide的调试信息吗,我自己看看哪里出了问题,我google了一下这个是说json的格式出错了
检查一下 vscode 有没有这个路径下的 exe 的访问权限,除此之外,没有什么其他的办法了
这个错误意思就是命令执行返回的不是一个 JSON 字符串
使用mono执行的时候有无法显示的特殊字符,直接执行没有,这应该是导致命令执行返回的不是一个字符串的原因
是这样的,因为这是 .NET 程序,你直接执行会使用 windows 自带的 .NET 运行时运行这个程序,但 .NET 运行时会在执行程序前联网检查程序的证书链,为了去掉这个强制的联网过程,这个插件使用 mono 运行时执行 .NET 程序,mono 也是运行时的一种,只不过是第三方的,已经存在很长时间了。
至于为什么 mono 执行会附加一个无法显示的字符串,我也不太清楚,因为我这里无法复现这个问题(你可以用16进制看一下这两个字符到底是什么)
问题已经解决了 我设置了cmd.exe的默认代码页为65001(UTF8) 当代码页为65001时会出错 但是当代码页为936(gbk)时,命令执行结果就正常了 笑哭了,mono为啥会有这样的bug
EF BB BF 是 UTF8 BOM 头,微软喜欢用这个带 BOM 头的 UTF8 格式,这个 serialport_monitor.exe 字符集是跟随系统的,你切换到了UTF8代码页,mono 默认选了的带 BOM 的 UTF8,就这样了,后面我在程序里显式指定字符集就不会有这样的问题了
EF BB BF