使用Notepad++查看16进制文件遇到的大坑

  最近在调试单片机的IAP升级功能,需要将bin文件直接通过串口发送给单片机然后升级程序,在调试代码的时候,为了方便观察发送的数据是否正确,就直接使用了Notaped++里面的16进制插件来查看bin文件,谁知道这个插件却给自己埋下了一个大坑。

  首先说一下我的插件安装方法,在工具栏中选中插件—插件管理
在这里插入图片描述
在这里插入图片描述

  然后再插件列表里面查找想要安装的插件 HEX-Editor,点击右上角的安装按钮。
在这里插入图片描述
  等待安装完成,安装完成后打开软件,在工具栏—插件里面就可以看到刚安装的插件。
在这里插入图片描述
  需要用16进制查看的时候,打开bin文件,直接选择View in HEX,就可以直接用16进制查看bin文件了。
在这里插入图片描述
  按理说这个插件是直接从官方渠道安装的,没有什么问题。但是偏偏就在这个地方摔了个大跟头。在调试程序的时候就发现,单片机接收到的数据和在这个notepa++里面看到的数据不一样,还以为是自己的串口受到了干扰,单片机和串口模块检查了好久都没发现啥问题,又在程序上排查了好久,还是没找到问题。最后突然想起来了,用单片机的烧写软件直接打开bin文件对比一下,结果才发现单片机接收到的数据和烧写软件里面的16进制数据是一样的。这时候才意识到也许是这个notapad++软件的问题。

  下面直接看对比
在这里插入图片描述
  用notapad++软件和j-link的烧写软件打开同一个bin文件,通过对比内容可以发现,0x90前面的数据都是正确的,但是从0x90这一行开始第6个数据就不一样了。而且后面的数据基本都不一样了,还不是一两个数据错误这种情况。

  为了避免这个j-link软件也有问题,我又找了第三个查看16进制的软件MadEdit
在这里插入图片描述
  这时就会明显的看到,j-link的烧写软件和MadEdit软件里面查看的内容一样的,只有notapad++中显示的内容不一样。看来的确是这个软件的问题。后来还怀疑是不是只有我安装的这个16进制插件的版本有问题,又在网上下载了好几个版本,最后发现其他版本也有这个问题。在网上找了好久也没有找到这个问题的解决方法。

  看来以后调试代码的时候,需要查看16进制的数据时,千万不能使用Notepad++这个软件。

猜你喜欢

转载自blog.csdn.net/qq_20222919/article/details/131149797