关于STM8的程序下载问题:SWIM Error[30006]报错解决办法汇总

       本人也是Windows用户的受害者,对于编程1天,配置2天的经历来说,着实是一种痛苦的情况。本人也是遇到了这个问题,虽然发现竟然是芯片错了,但也因为这个研究了好几天,为了下次不再重新网上搜索,就把我现在对这方面的解决方法汇个总,并把我个人的自己见解放在里面记录下来。
问题背景
        我用的是IAR的STM8开发环境,在连接ST-LINK时,选择运行调试就会立马报错,出现错误为:**Connection error(usb):swim error[30006]:comm init error:chip does not answer,不管插多少次,重启系统都不行。
针对这样的情况,下面要从硬件和软件两个方面来分析并解决。
硬件方面

       1. ST-LINK仿真器或者STM8烧坏了。它可能会因为电压不稳,接线错误导致短路等等原因而损坏,所以你可以摸一下ST-LINK或者STM8芯片烫不烫,如果发烫很有可能已经导致损坏,可以选择换一个,也不贵。不用购买官方的,都是淘宝上十几块的ST-LINK V2和U盘大小差不多。我用的就是这种:


还有就是对内置固件的升级,网上有很多这样的建议和教程,我觉得这个还是很有难度的,一般出现这种问题的也就是新手这种水平居多,所以还是略过吧,重新买一个没多少钱。

       2. 检查是否是引脚错误。对于上述图片的这种仿真器,一般就是10引脚接口,如下所示:

 
      一般和单片机上的连接用的就是4个引脚,其中ST-LINK V2之所以适应STM8和STM32两种系列的仿真,就是因为
      ---左排引脚是STM8的SWIM调试模式
      --右排引脚是STM32的JTAG或者SWD的调试模式
      一般芯片供电都是用3.3V,所以可以不接5V引脚,如果接错了,也会出现上述error[30006]的错误。
软件方面
      1. SWIM模块被屏蔽
这个原因可能不是很多人知道,在STM8芯片中有一个全局配置寄存器CFG_GCR,如下定义:
 

该寄存器的最后一位就是SWIM的使能端口,在单片机复位下,该寄存器默认是0x00,表示SWIM是被允许的,而如果某个STM8型号的不支持SWIM,很可能复位状态下是0x01,屏蔽了SWIM,这个时候你就得去芯片参考手册里去看看这个。


     2. IAR配置错误
     这一块其实是开发者最常用的,一般配置出错也不太可能,在仿真和在线调试两种模式下,区别就是在于选择在线调试模式即可,具体方法为:
1)打开你要下载的工程,然后在右边一栏中右键工程,选择option

2)在category中选择Debugger,在Setup下面的Driver从原来的Simulator选择为ST-LINK,点击OK即可。


      3. ST-LINK V2驱动问题
      这个问题也是大家面临最多的问题,一般情况下下载失败都是由于驱动安装失败或者版本不兼容造成的,尝试过上述一些方法之后,如果还是失败,那么你就要考虑驱动问题了。对于驱动无非就是两点,一是驱动版本是否正确,二是驱动是否安装成功。这里我总结网上的经验再结合自己的,总结为大的步骤。
      1)卸载驱动。往往发生驱动问题时,或者在设备管理器中出现黄色感叹号的情况,就是驱动安装失败,首先避免以前的驱动产生干扰,先卸载驱动。在设备管理器中找到黄色感叹号的设备,然后右键->卸载,完成卸载驱动。
      2)取消自动安装。每次都是插上USB后自动开始安装驱动,导致你安装完你需要的驱动之后,再一次插入就变成安装最新驱动,前面就白花功夫了。这里我介绍了关于Win8.1的取消自动安装步骤,其他系统这里就不介绍了,步骤如下:
步骤一:将鼠标移动到屏幕最右下角,然后上移,就会出现一个竖栏,点击设置;
步骤二:出现设置界面,然后点击上方第二个“控制面板”,进入控制面板界面;
步骤三:然后选择“设备与打印机”
步骤四:然后看到设备一栏中,右键你自己的PC,右键选择“设备安装设置”;
步骤五:选择第二个“否,让我选择要执行的操作”,然后选择“从不安装来自windows更新的驱动程序软件”,保存更改即可。
       3)网上下载驱动。一般百度或者去官网下载驱动,百度搜索驱动时注意下载一些评分比较高,评论写的都是好评的驱动,别下成病毒或者别的什么程序了。而且要注意是选择32位的x86版本,还是64位版本。
       4)驱动解压。这里需要注意,一般下载下来的很多是压缩包,或者是exe的可执行程序,而且压缩包里大多数也是exe可执行程序,很多人以为执行这些可执行程序之后就算是安装驱动完成了。其实是错误的,这些exe其实只是一种解压方式的程序打包,他会释放里面的文件到指定的目录,其实说白了就是解压,是一种定向关联解压。里面的解压出来的文件才是真正的驱动文件。
在运行exe的时候,会让你选择安装目录,你可以选择默认,或者自己设定一个目录,但这里你要把这个目录记下来,后面手动安装驱动是需要的。这里你还要确认一下,你打开那个安装目录,去看一下是否已经安装完毕。有的时候明明提示你安装成功,但实际上你去安装目录一看,发现是空的,说明并没有安装。
       5)手动安装驱动。这已经是最后一步了,是真正安装驱动的步骤,你到设备管理器中,找到黄色驱动,右键选择更新驱动程序,然后选择手动搜索。这里很关键,你需要把第4步那个安装目录选择,因为那里就是驱动文件,选择完后就会开始安装,你的ST-LINK如果灯不再闪烁,而是常亮,说明驱动安装成功啦。如果还是不行,你拔下来再插一次试试,基本就可以了。
总结
       终于完成了安装,如果上面所有的步骤都尝试过,还是不行的话,那真是命不好,你已经成功避免了99%可能出现的情况,要不你就换台电脑试试,或者实在不行,重装IAR吧。虽然Windows让程序员很通过,但毕竟多数人还是用的是他,好好享受吧。希望这些能让我以后少走些弯路。
  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值