相信大家學習的第乙個c言語程式是:
printf(「hello word!」);
那麼編寫stm32這樣的程式是否可以也可以列印呢?答案是肯定的。
下面介紹兩種除錯列印的方式,第二種估計很多人都不知道哦。
實現很簡單,我們只要新增乙個重對映函式就可以實現列印的功能了。具體操作如下:
新增一下**。
#if
1#pragma import
(__use_no_semihosting)
struct __file
;file __stdout;
void
_sys_exit
(int x)
int fputc
(int ch,
file
*f)#endif
接著下來,就可以直接使用print()函式進行除錯列印了。
那麼還有沒有其他方式實現列印呢?有的可以使用vsnprintf函式進行字元轉換
int printk
(const char *fmt_s,
...)
;//os_suspend();
va_list ap;
int result;
uint32_t len =
sizeof
(outbuf)
;va_start
(ap, fmt_s)
; result =
vsnprintf
(outbuf, len, fmt_s, ap)
;va_end
(ap);if
(result >0)
//os_resume();
return result;
}
這個函式 printk()使用和標準的printf一模一樣。
這樣子就有個好好玩的 東西,如果這函式不式串列埠輸出呢?
他還可以式lcd的輸出或者無線模組的傳輸喔。這樣子是不是感覺能做的事情更加多了呢?哈哈哈
先在工程裡面新增rtt函式檔案(只有兩個檔案哦):
然後只有在需要列印的地方新增:函式就新了:
開啟j-link的rtt viewer工具:
列印效果如下:
stm32嵌入式你不一定知道的除錯方法系列 2
估計很多人是不知道keil除錯工具的這個功能的。就算是已經工作了4 5年的工程師也不見得知道有這個功能。我們可以通過keil的除錯 工具設定某個變數被讀或者被寫操作的時候產生除錯斷點。這時就可以快速定位到一些棘手的問題。例如 之前有位小朋友,發現他的程式中有個關鍵的變數在某個地方被莫名奇妙的被修改了...
abap系列 你不一定知道的open sql用法
作為abaper open sql中的select和in 子查詢屬於日常必備的技能。然而,open sql還有一些語法你可能沒用過甚至沒聽過,這些語法用好了可以大大減少 複雜度和提高效能,下面就來看看這些用法吧。場景1 取建立日期晚於憑證日期的採購憑證,用於統計補單率。1 select eneln ...
你不一定知道的UrlPrefix路由規則
接上文,容器內web程式一般會繫結到或http 以確保使用容器ip可以訪問到web應用。正如我們在asp.net core官方映象顯示的,asp.net core程式在容器內80埠監聽請求 web程式啟動後,根據監聽位址urlprefix中的主機元素,會向系統元件http server api註冊不...