在日常工作中,邏輯分析儀和示波器是MCU工程師必不可少的工具,有時候程序有BUG的時候就需要用到這些工具看波形,從而更快地定位到問題所在,進而解決問題。
但是除了成本以外,我們也不可能時時刻刻把這些工具攜帶在身邊,所以keil的軟件仿真功能中的邏輯分析儀在這個時候就體現出非凡的意義了。
下面的使用步驟是我通過查閱網上資料以及自己實踐得出的,如果錯漏,敬請斧正:
1、首先,設置options for target:
①Target頁的設置:
圖1:options for target ->Target
Target界面中,選擇跟正確的晶振大小,我使用的是8MHz的外部晶振。這個選項在軟件仿真中起到很重要的作用,如果選擇錯誤,那么波形一定是錯誤的,因為時間不准確。此前,我增加默認為72MHz,結果波形與預料的不一致,原本是1s翻轉一次的波形,顯示出來的周期比預想的長得多。不過這個參數只是在軟件仿真中起作用,當程序在硬件中運行並沒有影響。
②Debug頁的設置:
圖2:options for target -> Debug
首先應該選擇Use Simulator,其次是Run to main()選項打鈎,然后分別修改上圖中的 3 、4、5 、6,注意,3和5在STM32的單片機中應該都是固定的,但是4和6是跟你所采用的具體某一款單片機是對應的。4和6應該是圖1中STMicroelectronics 保持一致。
按照以上步驟設置后點擊OK,完成設置。
2、點擊Debug,進入調試界面:
3、選擇邏輯分析儀:
4、選擇要觀察的引腳:
①點擊Setup Logic Analyzer
②添加要觀察的引腳:
注意:圖中選擇的兩個引腳分別是PE8和PE9,其中,PORTE就是端口E,如果是GPIOA,那么對應的也應該寫成PORTA,PORTE & 0x00000100后再右移8位也就把PE8的狀態獲取出來,1就是高電平,0就是低電平。PE9同理。一定要選擇Bit,顏色是為了區分不同的引腳,根據需要配置即可。設置完成后退出,就可以在后續的操作中觀察到波形。
PS:如果上述步驟1中的Debug頁中3、4 、5 、6沒有正確設置,那么在添加引腳的時候就會出現報錯:Unknown Signal !
5、運行程序:
6、觀察波形,把光標移動到邏輯分析儀顯示波形的區域,上下滾動滑輪,就可以放大和縮小波形:
還可以直觀地計算波形的寬度:移動光標的位置到某一個點,單擊鼠標左鍵就會把這個點設置為起始點,然后移動光標到另一個位置就可以看到很多的信息,包括時間還有兩點之間的時間差,也就是寬度,如圖所示:
以上就是查看波形的所有步驟。當然,在調試時最好能用示波器或者邏輯分析儀來測量引腳的波形,硬件上進行實際的調試才能最直觀地觀察現象和定位問題。