找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6083|回復(fù): 3
收起左側(cè)

求救:STM32F042K6T6高低溫測試時死機

[復(fù)制鏈接]
ID:213801 發(fā)表于 2017-6-22 18:00 | 顯示全部樓層 |閱讀模式
最近公司有個項目上面用的STM32F042K6T6做CAN通信,F(xiàn)在做高低溫測試時總是死機,平時都是正常的,高溫最高60度,低溫最低-20度,死機不是發(fā)生在高溫或者低溫,而是發(fā)生在從60度恢復(fù)到0度或者從-20度恢復(fù)到0度。MCU已經(jīng)使用了IWDG和WWDG,但是都起不到復(fù)位的作用,求救。

參考原理圖

參考原理圖
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2017-6-22 22:43 | 顯示全部樓層
多半是:
程序中有死待某個標(biāo)記,用C寫的程序常有此問題(因為按正常邏輯及狀況,這個標(biāo)記一定會出現(xiàn),程序未考慮循特殊情況的出現(xiàn))。
比如:某個硬件在異常狀態(tài)下給不出標(biāo)記時,程序又死等它出現(xiàn)。

我一般比較注意有死等某個標(biāo)記地方,在死等的語句中插入時間限制(時間由中間程序控制,計時與死待無關(guān)),等不到標(biāo)記,但時間到了就跳出。
如何找到死等的點呢?
給程序運行加追蹤器:
比如:程序有10個步驟或任務(wù)或其它什么,用一個寄存器R_RUN,運行到任務(wù)1就讓R_RUN=1,運行到任務(wù)N就讓R_RUN=N。也就是說只要知道R_RUN的值就能知道程序運行到什么任務(wù)(地方)。
當(dāng)看門狗復(fù)位動作時,運行一個輸出R_RUN的程序(寫一個顯示程序或其它可以輸出的方式)
這樣你就知道,程序死在什么地方了。任務(wù)分得越細(xì)越易找到問題。
回復(fù)

使用道具 舉報

ID:213935 發(fā)表于 2017-6-23 09:25 | 顯示全部樓層
不懂,完全看不懂
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表