日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]貼了兩塊樣板,燒寫同樣的固件。其中一塊工作正常,但是另外一塊出現(xiàn)了很奇怪的現(xiàn)象:在線調(diào)試正常;每次燒寫完后工作正常;重新上電有時(shí)候工作正常,有時(shí)候工作不正常;工作不正常時(shí),按下復(fù)位按鍵,恢復(fù)正常。工作

貼了兩塊樣板,燒寫同樣的固件。其中一塊工作正常,但是另外一塊出現(xiàn)了很奇怪的現(xiàn)象:在線調(diào)試正常;每次燒寫完后工作正常;重新上電有時(shí)候工作正常,有時(shí)候工作不正常;工作不正常時(shí),按下復(fù)位按鍵,恢復(fù)正常。

工作異?,F(xiàn)象:main函數(shù)中的系統(tǒng)運(yùn)行指示燈不閃爍,但是初始化過程中點(diǎn)的一個(gè)燈是亮的!說明程序運(yùn)行一段時(shí)間后,不工作了。

由于在線調(diào)試模式,板子工作正常,無法通過在線調(diào)試的方式判斷程序運(yùn)行的異常狀態(tài)。


分析可能的原因:

1、初始化過程中,程序陷入死循環(huán)。但程序初始化過程中,沒有while(1)死循環(huán)的代碼。

2、板子上電后不斷復(fù)位,導(dǎo)致無法進(jìn)入main函數(shù)中的while(1)循環(huán)。

問題查找:

硬件:

1、確認(rèn)BOOT0管腳接10kΩ歐電阻下拉到地;

2、RC上電延時(shí)復(fù)位電路中,R為10kΩ,C由0.1uF改為10uF,現(xiàn)象依舊;

3、MCU 3.3V電源紋波很小,排除電源問題。

好像從硬件上查不出什么問題。只能從板子上唯一點(diǎn)亮的燈下手了。

軟件:

1、好像跟硬件復(fù)位沒什么關(guān)系,為了確認(rèn)板子是不是在不停復(fù)位,在點(diǎn)亮的那個(gè)燈前加了100ms延時(shí),如果是在復(fù)位,那燈就應(yīng)該不停閃爍。但那個(gè)燈還一直是亮的,說明是程序運(yùn)行出錯(cuò),不運(yùn)行了。

2.不斷修改led燈在初始化代碼中的位置,最終定位到導(dǎo)致運(yùn)行出錯(cuò)的代碼:配置一個(gè)GPIO為外部中斷,跳變沿觸發(fā),上拉。把上拉改為NOPULL,工作一切正常。

問題定位:配置為外部中斷的GPIO懸空導(dǎo)致。之前工作正常的樣板是一直有連接到那個(gè)IO腳的外接模塊,這個(gè)工作不正常的沒有接,導(dǎo)致IO管腳電平不確定。由于電平的不確定,在初始化的瞬間有一個(gè)跳變沿,導(dǎo)致程序進(jìn)入外部中斷服務(wù)函數(shù)。在中斷服務(wù)函數(shù)中,要讀取一個(gè)定時(shí)器的寄存器的值,但是要讀取的定時(shí)器可能還沒有完成初始化,導(dǎo)致讀取失敗,程序運(yùn)行異常。

解決辦法:1、PULL模式有PULLRISING改為NOPULL;

2、timer在這個(gè)外部中斷之前進(jìn)行初始化。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉