找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

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

查看數: 5995 | 評論數: 3 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2017-6-22 18:00

正文摘要:

最近公司有個項目上面用的STM32F042K6T6做CAN通信,F在做高低溫測試時總是死機,平時都是正常的,高溫最高60度,低溫最低-20度,死機不是發(fā)生在高溫或者低溫,而是發(fā)生在從60度恢復到0度或者從-20度恢復到0度。MCU ...

回復

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

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

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表