基于STM32的Keil、IAR仿真打印輸出
作者:strongerHuang
微信公眾號(hào):嵌入式專(zhuān)欄
1寫(xiě)在前面
很多初學(xué)者習(xí)慣使用軟件仿真,應(yīng)該是很多人都知道的一款仿真軟件。
以前開(kāi)發(fā)板相對(duì)較貴,且快遞不方便,使用仿真軟件可以理解。現(xiàn)在便宜的STM32開(kāi)發(fā)板就十幾塊,還用仿真軟件,我不是很理解。
有經(jīng)驗(yàn)的人都知道,仿真和實(shí)際運(yùn)行情況很多時(shí)候都不一樣,相信不用我說(shuō),大家都明白。
因此,我個(gè)人不是很推薦大家仿真,本文內(nèi)容可能存在紕漏,僅限個(gè)人學(xué)習(xí)。
下面講述基于Keil MDK-ARM 和 IAR EWARM進(jìn)行仿真打印的配置。
2Keil仿真打印配置
Keil MDK-ARM不能仿真,原因出在仿真參數(shù)出現(xiàn)了問(wèn)題:
修改這兩處參數(shù)為:DARMSTM.DLL -pSTM32F103ZE
基于前面使用STM32CubeMX生成工程,修改此處仿真相關(guān)配置即可。
下面提供的工程,直接編譯,再點(diǎn)擊調(diào)試按鈕,打開(kāi)UART 1#,全速運(yùn)行,就能看到printf打印效果:
3IAR仿真打印配置
IAR下的仿真打印,我沒(méi)有研究透徹,只是經(jīng)過(guò)測(cè)試驗(yàn)證,可以運(yùn)行。
這里仿真打印,我使用SWO方式:
重定義代碼為:
int fputc(int ch, FILE *f)
{
ITM_SendChar(ch);
return ch;
}
IAR仿真效果:
當(dāng)然,有些配置我沒(méi)有研究明白,比如滴答中斷計(jì)數(shù),為什么仿真沒(méi)有正常執(zhí)行。所以,我自定義延時(shí)函數(shù)。
4下載
為方便大家理解,提供源碼工程下載,包含Keil和IAR實(shí)例代碼:
百度網(wǎng)盤(pán):
https://pan.baidu.com/s/1aYBuHtOgtLqLvj6SsMYlQA
提取碼:nbd3
提示:
1.公眾號(hào)不支持外部鏈接,請(qǐng)復(fù)制鏈到瀏覽器打開(kāi)。
2.若鏈接失效,請(qǐng)關(guān)注公眾號(hào),回復(fù)『printf系列教程』獲取最新鏈接。
3.源碼僅供學(xué)習(xí)參考,實(shí)際項(xiàng)目請(qǐng)按需修改。
幾個(gè)類(lèi)似 VS Code的開(kāi)源編輯器工具
CMSIS RTOS API,內(nèi)核通用API接口
Linux 內(nèi)核的 100% 自由版本 GNU Linux-libre 5.8 發(fā)布
長(zhǎng)按前往圖中包含的公眾號(hào)關(guān)注
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀(guān)點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!