單片機(jī)運(yùn)行出錯(cuò),或者陷入死循環(huán),有可能是硬件電路原因,也有可能是程序原因。
一、排除電路故障
當(dāng)單片機(jī)運(yùn)行出錯(cuò),直觀的表現(xiàn)就是電路中某一部分不能正常工作,這個(gè)時(shí)候就需要我們運(yùn)用電子知識(shí),借助測(cè)量工具,檢查電路中的故障點(diǎn),看看是不是電路存在斷路、短路等問題,元器件是否正常工作。電壓電流是否正常。
程序陷入死循環(huán)不一定全是軟件原因,例如對(duì)于有的單片機(jī),需要時(shí)鐘配置的,而時(shí)鐘配置如果不成功的話,程序不運(yùn)行,如果晶振電路有問題那么程序就會(huì)一直停留在時(shí)鐘配置這段程序中。造成了所謂的死循環(huán)。
另外如果電路不穩(wěn)定,造成程序運(yùn)行過程中單片機(jī)受到干擾,程序就會(huì)跑飛。
二、排除程序故障
如果排除的電路的問題,那么就要檢查程序了,對(duì)于簡(jiǎn)單的故障,根據(jù)經(jīng)驗(yàn)可能很快就能定位道程序出錯(cuò)的位置和出錯(cuò)原因,那就直接去檢查那一段程序,然后修改。
如果故障現(xiàn)象比較復(fù)雜,這個(gè)時(shí)候最好借助仿真器,讓程序在仿真環(huán)境下運(yùn)行,運(yùn)用單步、跳轉(zhuǎn)、斷點(diǎn)等仿真手段,在仿真過程中觀察程序中的數(shù)據(jù)或者電路的運(yùn)行狀態(tài),當(dāng)數(shù)據(jù)出錯(cuò)或電路故障表現(xiàn)出來的時(shí)候,程序運(yùn)行到哪里了,這個(gè)地方可能就存在錯(cuò)誤,檢查并修改。
對(duì)于死循環(huán)問題,在程序這幾種應(yīng)盡量避免使用死循環(huán),例如可以設(shè)定一個(gè)最大等待出錯(cuò)時(shí)間,如果超過最大時(shí)間,就設(shè)置錯(cuò)誤警示。如果必須使用死循環(huán),可以考慮使用看門狗等手段,使單片機(jī)實(shí)現(xiàn)超時(shí)復(fù)位。
文章題目:電工知識(shí):?jiǎn)纹瑱C(jī)運(yùn)行出錯(cuò)或者陷入死循環(huán)是什么原因
URL地址:http://www.rwnh.cn/hangye/sdgz/n13187.html
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)