STM32之option bytes踩坑记录
最近在做一個stm32項目,用的盜版jlink調試,突然某次下完程序,stm32竟然開始無限重啟了,量了一下復位腳,發現有周期性的重啟脈沖輸出,一開始我以為是硬件壞了,重新焊了一套硬件,發現新焊的是好的,但是原來那塊板子,檢查來檢查去感覺也不像是硬件和程序的問題。
后來我查了一些資料,想到去檢查復位后的RCC_CSR寄存器,這里會標識系統是由哪個信號引發的reset,看了以后才發現是由于看門狗引起的,但是看門狗我軟件上都一直沒開過,感覺非常奇怪。
后來查了些資料才發現:
| STM32的獨立看門狗可以是硬件使能或軟件使能,硬件使能是通過option bytes配置,軟件使能是通過軟件設置寄存器位配置。 ? 硬件使能的看門狗,在系統上電之后就開始工作,一旦開始工作就沒有辦法讓它停止工作;而軟件使能的看門狗,只有在設置了相應的寄存器位后才能開始工作,一旦開始工作,只有系統復位才能讓它停止工作。 如果啟用了硬件使能,必須通過擦除相應的選擇字節位關閉硬件看門狗功能,這時看門狗的功能可以通過軟件使能。 |
原來那么高端的,竟然還有option bytes這種東西,再查閱了一些關于option bytes資料:
STM32 的 Flash information block 部分,包含有特殊的選項字節,可以用于系統配置等信息, 其中還有兩個有效字節(實際四個字節,兩個是校驗字節)的用戶自定義數據字節。用ST-LINK可以直接配置這些特殊的配置位。
原來如此,STM32也有類似51/AVR之類的熔絲位,但是一般來說平時手動設置會比較少,所以不太注意這一點,用ST-LINK Utility可以直接使用ST-LINK來配置熔絲位:
打開以后界面如下:
可以看到WDG_SW位被清零了,這個位如果清零,看門狗上電就會由硬件使能,且關不掉,而另一塊板子,這個配置位是置1的。我這里把WDG_SW位勾選上,然后寫入,無限自動重啟問題就解決了。看來盜版jlink確實容易用出問題來,能用正版還是盡量用正版吧。
總結
以上是生活随笔為你收集整理的STM32之option bytes踩坑记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JFlash ARM对stm32程序的读
- 下一篇: STM32 Option Bytes位