Keil软件仿真步骤
目錄
- 前言
- 一、準(zhǔn)備工作
- 二、仿真
- 1.波形驗(yàn)證
- 2.變量驗(yàn)證
- 3.其他
- 注意事項(xiàng)
前言
在學(xué)習(xí)STM32的過程中會不可避免的遇到需要仿真的情況,其實(shí)大部分時候都是直接使用ST-Link進(jìn)行硬件仿真,不過Keil自帶的軟件仿真功能同樣強(qiáng)大,一般的波形或者中斷之類的也是可以仿真的,所以針對使用頻率不是那么高,但是萬一有一天忘了帶板子的情況,寫一下簡單的軟件仿真的步驟
一、準(zhǔn)備工作
首先需要修改“debug”標(biāo)簽的內(nèi)容,該部分配置直接看圖:
主要修改的地方就三個:
“Use simulaor”代表要使用軟件模擬仿真
“dialog DLL”的內(nèi)容是“DARMSTM.DLL“,表示使用STM系列
“parameter”的內(nèi)容是“-pSTM32F103RC“,這里匹配的是當(dāng)前單片機(jī)的型號
然后其他的 ”√” 照著圖中的就行,這里把硬件仿真順道提一下,只需要把“dialog DLL”的內(nèi)容換成“TARMSTM.DLL“,其他的和軟件仿真一樣。如果我們用的是其他型號,比如STM32F103C8T6,只需要把“-pSTM32F103RC“改成“-pSTM32F103C8“,其他的以此類推
另外一個需要配置的就是時鐘,配置如下:
這里主要是指的晶振,把時鐘改為8M就行
二、仿真
1.波形驗(yàn)證
點(diǎn)擊圖中的debug圖標(biāo),進(jìn)入軟件仿真界面,
選擇邏輯分析儀,
這時,假設(shè)我們要看PD2引腳輸出的PWM波形,需要完成圖中三個紅框的配置,第一個就是寄存器,需要分析的是GPIOD_ODR,即輸出的電平,這里由于我們程序中設(shè)置的是輸出高低電平01,故而在display中設(shè)置Bit,然后shift right設(shè)置為2,如果是PD0則設(shè)置為0,同樣的道理,換成其他的引腳,比如PA1,相應(yīng)的signal設(shè)置為GPIOA_ODR,shift right設(shè)置為1
點(diǎn)擊run之后,邏輯分析儀出現(xiàn)PWM波形,
和我們程序中設(shè)置的10ms的變化間隔一致,故而程序運(yùn)行正常
2.變量驗(yàn)證
設(shè)置一個全局變量test,然后把它加入到窗口中,把變量與中斷關(guān)聯(lián),每發(fā)生一次外部中斷就自加1,這樣就可以驗(yàn)證外部中斷,如果要實(shí)現(xiàn)外部中斷,則需要以下步驟:
我們設(shè)置PA0外部中斷,上升沿觸發(fā),只需要反復(fù)用“√”在其對應(yīng)的Pin處使使它不停產(chǎn)生上升沿就能使變量test累加
3.其他
在system viewer中可以看到大部分寄存器的狀態(tài),可以調(diào)用進(jìn)行查看,基本上大部分基礎(chǔ)功能的仿真驗(yàn)證都能做到
注意事項(xiàng)
在仿真過程中很多時候會出現(xiàn)不出波形,或者其他各種情況,這些問題其實(shí)本質(zhì)上是由于仿真本身具有一定的局限性,關(guān)于有延時的仿真,晶振一定要改為8MHz,至于其他的部分輸入和輸出盡量分開,比如GPIOA.1輸入,則用GPIOB.2輸出,并且不宜加入過多的時序控制,像多定時器這樣,功能過于復(fù)雜會使仿真失敗,軟件仿真主要以驗(yàn)證小功能為主,大的系統(tǒng)級工程軟件仿真本質(zhì)上還是吃不消的
總結(jié)
以上是生活随笔為你收集整理的Keil软件仿真步骤的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新最全论文合集——蒙特卡洛树搜索
- 下一篇: C#之CAD二次开发(19) 组合条件的