本人也是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讓程序員很通過,但畢竟多數人還是用的是他,好好享受吧。希望這些能讓我以后少走些彎路。
上一篇:iar Error[Li005] no definition for "assert_failed"
下一篇:stm8用ST-Link下載時出現Connection error
推薦閱讀
史海拾趣
在刻蝕設備領域取得成功后,中微并沒有滿足于現狀,而是積極拓展多領域,實現業務多元化。2012年,公司完成了首臺MOCVD設備的研制,成功進入薄膜沉積領域。2016年,公司又完成了首臺ICP刻蝕設備的研制,進一步鞏固了在刻蝕設備領域的領先地位。此外,公司還在環保領域有所布局,成功研制出首臺VOC設備。這些舉措不僅豐富了公司的產品線,也為公司帶來了更多的市場機遇。
在刻蝕設備領域取得成功后,中微并沒有滿足于現狀,而是積極拓展多領域,實現業務多元化。2012年,公司完成了首臺MOCVD設備的研制,成功進入薄膜沉積領域。2016年,公司又完成了首臺ICP刻蝕設備的研制,進一步鞏固了在刻蝕設備領域的領先地位。此外,公司還在環保領域有所布局,成功研制出首臺VOC設備。這些舉措不僅豐富了公司的產品線,也為公司帶來了更多的市場機遇。
中微股份(Cmsemicon)的起點可以追溯到2004年,當時公司以刻蝕設備為核心業務,致力于引領中國刻蝕技術水平的提升。經過幾年的不懈努力,2007年,中微成功研制出首臺CCP刻蝕設備,這一里程碑標志著公司在刻蝕設備領域取得了重大突破。此后,公司不斷突破技術壁壘,2011年刻蝕設備達到45nm工藝節點,2013年達到22nm,2016年更是達到了14nm,并當前已量產5nm工藝節點設備。這些技術成果不僅證明了中微在刻蝕設備領域的實力,也為公司的后續發展奠定了堅實基礎。
盡管電子行業競爭激烈,市場變化莫測,但Coherent Inc.始終保持著堅定的前行步伐。公司不斷適應市場變化,調整戰略方向,積極應對各種挑戰。同時,公司也注重與合作伙伴的緊密合作,共同推動激光技術的創新和應用。這種堅定前行的態度,使得Coherent Inc.在電子行業中始終保持著領先的地位。
這五個故事只是Coherent Inc.發展歷程中的一部分,但它們足以展示公司在電子行業中的崛起和發展。通過不斷的探索、創新、收購與整合,以及堅定的前行態度,Coherent Inc.已經成為了激光技術領域的佼佼者,為電子行業的發展做出了重要貢獻。
2023年,Coherent Inc.在紐交所上市敲鐘,標志著公司的發展進入了新的階段。這一事件不僅彰顯了公司的實力和影響力,也為其未來的發展提供了更多的資本支持和發展空間。上市后的公司將繼續加大在技術研發和市場拓展方面的投入,推動激光技術的進一步發展。
在快速發展的同時,Black Box也非常注重企業文化和人才建設。公司倡導開放、創新、協作的企業文化,鼓勵員工提出新的想法和建議。同時,公司還建立了完善的人才培養和晉升機制,為員工的職業發展提供了廣闊的空間。這些舉措不僅吸引了大量優秀人才加入Black Box,也提高了公司的整體競爭力。
以上五個故事框架僅是基于Black Box Corporation的一般情況和電子行業趨勢的假設性構建。實際的發展過程可能更加復雜和多樣,需要具體的公司歷史資料和行業數據來支撐。如果需要更詳細和準確的故事,建議查閱Black Box Corporation的官方資料、相關新聞報道或行業研究報告。
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity t is port(key0,key1,key2,key3,key4,key5,key6,key7,key8,key9 ...… 查看全部問答∨ |
|
花了二年時間和近5W RMB學javaEE,現在想轉學嵌入式,請過來的前輩給點意見! 小弟馬上要大學畢業,時間不多,所以想前輩高人指點,希望給出合理學習嵌入式的方向,以及應先后學些什么,用什么樣的書,小弟先在此拜謝了!寫得有點長,請耐心看完。先自我介紹一下: 男,23 ...… 查看全部問答∨ |
剛開始修改好程序后編譯時沒有錯誤,但運行時立即電腦重啟, 重新編譯時,就出現了下列問題: 針對#include \"StdAfx.h\" fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit 請問諸位該怎 ...… 查看全部問答∨ |
串口通訊 我用中斷方式接受 怎么老式不行啊 請大蝦們幫我看看啊 不勝感激!!!>>>>>> #include \"config.h\" uint16 Fdiv; uint8 p; uint8 flag_ri; void __irq IRQ_UART0(void) { if(0x04==(U0IIR&0x0f)) { p=U0RBR; flag_ri=1; } VICVectAddr=0x00; } void DelayNS(uint32 dly) { uint ...… 查看全部問答∨ |
本人于成都創立軟件工作室,工作室屬于創業初期。 工作室致力于移動平臺應用,主要為海外外包產品。 網址:www.mobiletao.com (主要面向海外客戶) 現工作室欲拓展國內市場,開發移動商業應用,招募技術合作伙伴,共同創業。 要求: 1.對移動商 ...… 查看全部問答∨ |
本信息來自合作QQ群:電子工程師技術交流(12425841) 群主在壇子ID:Kata 請問allegro中元件重疊造成的DRC如何解決啊 … 查看全部問答∨ |
|
請問有誰能說一下 MSP430、C2000 或 Cortex-M(Stellaris) 這幾款芯片那款更適合做圖像處理方面的運算,正在做一個通過實時數據的傳輸動態畫圖的東西,由于剛開始學習,不太了解,希望大家能給點意見!… 查看全部問答∨ |