內(nèi)容概述
本文檔主要介紹AT芯片在Keil和IAR兩種工程環(huán)境下的printf功能使用方法。其共包含如下表統(tǒng)計(jì)的6種方法,各方法的具體用法在具體內(nèi)容中描述。表1. AT芯片的printf函數(shù)使用方法匯總
具體內(nèi)容
IAR環(huán)境下經(jīng)Terminal I/O虛擬終端輸出
簡(jiǎn)介
IAR提供的鏈接到其Terminal的驅(qū)動(dòng)內(nèi)就包含有常用的scanf和printf等標(biāo)準(zhǔn)輸入輸出驅(qū)動(dòng)函數(shù),所以工程文件可直接經(jīng)IAR自帶的Terminal I/O窗口實(shí)現(xiàn)信息交互。
例程路徑
001_Printf_Test_IAR_Terminal\project\iar_v8.2
環(huán)境及硬件設(shè)計(jì)
1)環(huán)境本方法需在IAR環(huán)境下使用,例程支持的編譯環(huán)境為IAR_V8,硬件電路板為AT-START-F403A_V1.2。2)硬件連接Link/AT-Link&...connection表2. 硬件連接關(guān)系表--(無(wú)JTDO)
軟件設(shè)計(jì)
1) 頭文件代碼工程文件內(nèi)添加“stdio.h”。2) 重定向設(shè)定Printf解除重定向(屏蔽與實(shí)際串口的重定向)。
仿真與下載
代碼經(jīng)編譯后下載到MCU內(nèi),然后進(jìn)入Debug調(diào)試環(huán)境中,經(jīng)View->Terminal I/O(下圖1)調(diào)出虛擬終端,然后全速運(yùn)行代碼即可看到程序主循環(huán)內(nèi)的“Hello World”等內(nèi)容被打印到了終端交互窗口Output欄(下圖1)內(nèi),且在該窗口的Input欄內(nèi)輸入的數(shù)據(jù)也同樣會(huì)被打印到Output窗口內(nèi)。圖1. 虛擬終端窗口路徑圖2. 虛擬終端交互窗口
IAR環(huán)境下重定向?yàn)榇谳敵?/strong>
簡(jiǎn)介
將printf函數(shù)重定向到芯片內(nèi)的一組實(shí)際串口,經(jīng)串口TX腳輸出,最后由串口助手工具進(jìn)行信息交互。
例程路徑
002_Printf_Test_IAR_USART2\project\iar_v8.2
環(huán)境及硬件設(shè)計(jì)
1) 環(huán)境
本方法需在IAR環(huán)境下使用,例程支持的編譯環(huán)境為IAR_V8,硬件電路板為AT-START-F403A_V1.2。
2) 硬件連接
J-Link/AT-Link&...connection
J-Link/AT-Link&...connection
表3. 硬件連接關(guān)系表--(無(wú)JTDO)
USART2 connection
表4. 硬件連接關(guān)系表--(USART)
軟件設(shè)計(jì)
1) 頭文件
代碼工程文件內(nèi)添加“stdio.h”;
2) 重定向設(shè)定
串口初始化并將Printf重定向到實(shí)際的串口,重定向函數(shù)如下
仿真與下載
代碼經(jīng)編譯后下載到MCU內(nèi),然后全速運(yùn)行代碼即可看到程序主循環(huán)內(nèi)的“Hello World”等內(nèi)容被打印到了終端交互窗口(下圖3)內(nèi)。
圖3. 串口助手交互窗口
經(jīng)Keil平臺(tái)的Debug(printy) Viewer虛擬終端輸出
簡(jiǎn)介
Keil平臺(tái)自帶有Debug(printf) Viewer接口,在ARM內(nèi)核集成有常用的scanf和printf等標(biāo)準(zhǔn)輸入輸出驅(qū)動(dòng)函數(shù)的前提下,該接口可用于標(biāo)準(zhǔn)的Printf交互。
例程路徑
003_Printf_Test_Keil_JTDO\project\mdk_v5
環(huán)境及硬件設(shè)計(jì)
1) 環(huán)境
本方法需在Keil環(huán)境下使用,例程支持的編譯環(huán)境為Keil_V5,硬件電路板為AT-START-F403A_V1.2
2) 硬件連接
J-Link/AT-Link&...connection
表5. 硬件連接關(guān)系表--(含JTDO)
軟件設(shè)計(jì)
1) 頭文件
代碼工程文件內(nèi)添加“stdio.h”;2) 跟蹤引腳分配3) Printf映射
仿真與下載
勾選如下圖4中的Enable,并設(shè)定Core值,Core值需與系統(tǒng)時(shí)鐘相等。
設(shè)定串口時(shí)鐘,通常通過(guò)勾選如下圖4中的Autodetect max SWO C1來(lái)實(shí)現(xiàn)。當(dāng)出現(xiàn)打印亂碼時(shí),此時(shí)可嘗試不勾選Autodetect max SWO C1,并手動(dòng)修改Prescale Core Clk保證打印信息正常。
隨后即可編譯代碼下載到MCU內(nèi),然后進(jìn)入Debug調(diào)試環(huán)境中,經(jīng)View->Serial Windows->Debug (printf) Viewer(下圖5)調(diào)出虛擬終端窗口,然后運(yùn)行代碼即可看到Hello World被實(shí)際打印到了終端交互窗口(下圖6)內(nèi)。
圖4. Trace相關(guān)設(shè)定
圖5. Keil虛擬終端窗口路徑
圖6. Keil虛擬終端交互窗口
Keil環(huán)境下重定向?yàn)榇谳敵?使用MicroLIB)
簡(jiǎn)介
Keil環(huán)境有自帶一個(gè)MicroLIB庫(kù),其內(nèi)包含一些支持Printf函數(shù)的代碼,在將Printf重定向到串口輸出時(shí),勾選使用MicroLIB后可由串口助手工具進(jìn)行信息交互。
例程路徑
004_Printf_Test_Keil_USART2_MicroLIB\project\mdk_v5
環(huán)境及硬件設(shè)計(jì)
1) 環(huán)境
本方法需在Keil環(huán)境下使用,例程支持的編譯環(huán)境為Keil_V5,硬件電路板為AT-START-F403A_V1.2
2) 硬件連接
J-Link/AT-Link&...connection
表6. 硬件連接關(guān)系表--(無(wú)JTDO)
USART2 connection
表7. 硬件連接關(guān)系表--(USART)
軟件設(shè)計(jì)
1) 頭文件
代碼工程文件內(nèi)添加“stdio.h”;
2) Printf重定向
3) MicroLIB設(shè)定
圖7. MicroLIB設(shè)定
仿真與下載
代碼經(jīng)編譯后下載到MCU內(nèi),然后全速運(yùn)行代碼即可看到程序主循環(huán)內(nèi)的“Hello World”等內(nèi)容被打印到了終端交互窗口(下圖8)內(nèi)。
圖8. 串口助手交互窗口
Keil環(huán)境下重定向?yàn)榇谳敵?不使用MicroLIB)
簡(jiǎn)介
Keil環(huán)境有自帶一個(gè)MicroLIB庫(kù),其內(nèi)包含一些支持Printf函數(shù)的代碼。在將Printf重定向到串口輸出時(shí),如果不勾選使用MicroLIB,自行在工程文件內(nèi)添加支持Printf函數(shù)的代碼段,也同樣可由串口助手工具進(jìn)行信息交互。
例程路徑
005_Printf_Test_Keil_USART2__Without_MicroLIB\project\mdk_v5
環(huán)境及硬件設(shè)計(jì)
1) 環(huán)境本方法需在Keil環(huán)境下使用,例程支持的編譯環(huán)境為Keil_V5,硬件電路板為AT-START-F403A_V1.22) 硬件連接J-Link/AT-Link&...connection表8. 硬件連接關(guān)系表--(無(wú)JTDO)USART2 connection表9. 硬件連接關(guān)系表--(USART)
軟件設(shè)計(jì)
1) 頭文件代碼工程文件內(nèi)添加“stdio.h”;2) Printf 重定向3) MicroLIB設(shè)定圖9. MicroLIB設(shè)定
4) Printf函數(shù)支持代碼添加
仿真與下載代碼經(jīng)編譯后下載到MCU內(nèi),然后全速運(yùn)行代碼即可看到程序主循環(huán)內(nèi)的“Hello World”等內(nèi)容被打印到了終端交互窗口(下圖10)內(nèi)。圖10. 串口助手交互窗口
經(jīng)JLinkRTT窗口輸出
簡(jiǎn)介
JLink自帶有調(diào)試輸出功能,在添加JLink RTT庫(kù)代碼后,可根據(jù)指定的指令實(shí)現(xiàn)代碼調(diào)試輸出到對(duì)應(yīng)的窗口。
例程路徑
006_Printf_Test_Jlink_RTT\project\mdk_v5
環(huán)境及硬件設(shè)計(jì)
1) 環(huán)境
本方法在IAR及Keil環(huán)境下均可使用,例程支持的編譯環(huán)境為IAR_V8、Keil_V5,硬件電路板為AT-START-F403A_V1.2。
2) 硬件連接
J-Link connection
表10. 硬件連接關(guān)系表--(無(wú)JTDO)
軟件設(shè)計(jì)
1) 頭文件
代碼工程文件內(nèi)添加“stdio.h”;
2) 添加JLink RTT庫(kù)代碼
分別將JLink RTT庫(kù)代碼中的SEGGER_RTT.c和SEGGER_RTT_printf.c添加到工程文件內(nèi);
根據(jù)編譯環(huán)境選擇添加SEGGER_RTT_Syscalls_IAR.c或SEGGER_RTT_Syscalls_KEIL.c到工程文件內(nèi);
3) 輸出到PC
此時(shí),代碼內(nèi)調(diào)用如下SEGGER_RTT_WriteString或SEGGER_RTT_printf命令即可輸出到PC端
仿真與下載
1) 通過(guò)JLinkRTTClient窗口輸出
代碼經(jīng)編譯后下載到MCU內(nèi),然后進(jìn)入Debug調(diào)試環(huán)境中,打開JLink安裝路徑下名稱為JLinkRTTClient的應(yīng)用程序。此時(shí)單步執(zhí)行代碼時(shí)即可看到打印信息被依次輸出到JLinkRTTClient窗口,如下圖11和圖12。
圖11. 代碼工程Debug
圖12. JLinkRTTClient窗口輸出信息
2) 通過(guò)JLinkRTTViewer窗口輸出
代碼經(jīng)編譯后下載到MCU內(nèi),然后打開JLinkRTTViewer窗口,如下圖13。
圖13. 打開JLinkRTTViewer窗口
點(diǎn)擊OK,并在彈出的窗口再點(diǎn)擊OK,然后在彈出的窗口輸入并選擇如下信息(此處以ZE系列為例),并點(diǎn)擊OK。如下圖14
圖14. device選擇窗口
拿前述代碼進(jìn)入Debug調(diào)試環(huán)境中,此時(shí)單步執(zhí)行代碼時(shí)即可看到打印信息被依次輸出到JLinkRTTViewer窗口。如下圖15
圖15. JLinkRTTViewer窗口輸出信息
注意事項(xiàng)
前述具體內(nèi)容2.3和2.6的測(cè)試時(shí),只能用J-Link,AT-Link暫不支持;
前述具體內(nèi)容2.1和具體內(nèi)容2.2的測(cè)試時(shí),如果使用AT-Link的話,工程內(nèi)Options→CMSIS DAP→Reset選項(xiàng)必須選擇為Hardware或者System,不然無(wú)法連接及下載代碼;
前述具體內(nèi)容2.2的測(cè)試時(shí),工程內(nèi)Options→General Options→Library Configuration→Library選項(xiàng)必須選擇為Full,不然無(wú)法正常輸出。因?yàn)橹挥羞x擇為Full時(shí),支持Printf函數(shù)的代碼才會(huì)被包含進(jìn)來(lái)。
前述具體內(nèi)容2.6.5.1測(cè)試時(shí),因輸出窗口應(yīng)用程序暫時(shí)無(wú)法指定芯片型號(hào),為保證代碼與窗口型號(hào)匹配且輸出正常,目前工程內(nèi)Device須選擇ST的型號(hào)。且工程代碼內(nèi)必須要勾選“Options”內(nèi)的“Use MicroLIB”,不然代碼編譯可能會(huì)出現(xiàn)異常。
關(guān)于雅特力雅特力科技于2016年成立,是一家致力于推動(dòng)全球市場(chǎng)32位微控制器(MCU)創(chuàng)新趨勢(shì)的芯片設(shè)計(jì)公司,專注于ARM Cortex-M4/M0+的32位微控制器研發(fā)與創(chuàng)新,全系列采用55nm先進(jìn)工藝及ARM Cortex-M4高效能或M0+低功耗內(nèi)核,締造M4業(yè)界最高主頻288MHz運(yùn)算效能,并支持工業(yè)級(jí)別芯片工作溫度范圍(-40°~105°)。雅特力目前已累積相當(dāng)多元的終端產(chǎn)品成功案例:如微型打印機(jī)、掃地機(jī)、光流無(wú)人機(jī)、熱成像儀、激光雷達(dá)、工業(yè)縫紉機(jī)、伺服驅(qū)控、電競(jìng)周邊市場(chǎng)、斷路器、ADAS、T-BOX、數(shù)字電源、電動(dòng)工具等終端設(shè)備應(yīng)用,廣泛地覆蓋5G、物聯(lián)網(wǎng)、消費(fèi)、商務(wù)及工控等領(lǐng)域。
-
mcu
+關(guān)注
關(guān)注
146文章
17984瀏覽量
366979
發(fā)布評(píng)論請(qǐng)先 登錄
錫膏的儲(chǔ)存及使用方法詳解

AT32 IAP using the USART
AT32的ERTC與RTC的區(qū)別
泰克TBS1102X示波器FFT功能使用指南

HOLTEK推出HT66R006 A/D型OTP MCU產(chǎn)品
STM32轉(zhuǎn)AT32代碼轉(zhuǎn)換

多功能電話測(cè)線器使用方法
AT32講堂088 | 雅特力AT32F402/F405時(shí)鐘配置

AT32講堂087 | 雅特力AT32 IDE快速入門指南

雅特力AT32 MCU的隨機(jī)數(shù)生成

AT32講堂085 | 雅特力AT32 MCU HICK時(shí)鐘校準(zhǔn)

評(píng)論