由於在日常使用中經常碰到要使用printf的時候,每次都要去上網翻查一下,在此做記錄方便查詢
c語言中的標準庫中所用的標準輸出函式,預設的輸出裝置是顯示器,要實現串列埠或lcd的輸出,必須重新定義標準庫函式裡與輸出函式相關的函式。例如:printf輸出到串列埠,需要將fputc裡面的輸出指向串列埠(重定向),方法如下:
只要自己新增乙個int fputc(int ch, file *f)函式,能夠輸出字元就可以了
使用stm32cubemx配置串列埠工程後,想直接使用printf需要加以下**到usart.c的使用者**段:
/* user code begin 1 */
#ifdef __gnuc__
/* with gcc/raisonance, small printf (option ld linker->libraries->small printf
set to 'yes') calls __io_putchar() */
#define putchar_prototype int __io_putchar(int ch)
#else
#define putchar_prototype int fputc(int ch, file *f)
#endif /* __gnuc__ */
/** * @brief retargets the c library printf function to the usart.
* @param none
* @retval none
*/putchar_prototype
/* user code end 1 */
就這樣而不需要巨集定義任何內容了,**中粗暴的printf("hello world")吧~,此方法親測適用mdk和iar環境
———————————————————————2020.07.06更新———————————————————————
一些轉義字元
在MFC中使用printf
將以下 加入到對話方塊初始化函式oninitdialog 中allocconsole 控制台除錯視窗開啟 freopen conout w stdout 開啟中文控制台輸出支援在退出函式中加入以下 freeconsole 釋放控制台資源如果使用的是右上角預設的叉號退出介面,可以直接新增以下 void...
C語言中使用printf 列印漂亮的顏色字型
示例 printf 033 1 32m s 033 0m cmds i cmd ifndef color h define color h define none e 0m 清除顏色,即之後的列印為正常輸出,之前的不受影響 define black e 0 30m 深黑 define l black...
將C註冊到lua環境中使用
註冊到lua的方式有兩種,一種是lua直譯器,如果支援動態鏈結,使用動態鏈結機制,將函式介面編譯成動態鏈結庫,然後將動態鏈結庫放到lua的c路徑 lua cpath 中,然後在lua檔案中直接使用 require 這句話會使主機編寫的動態鏈結庫鏈結到lua,並尋找 將模組註冊到package.loa...