代碼調試之串口打印


推薦碼農一款好的瀏覽國外網站工具:>>>梯子<<<

瀏覽google 更方便更能快捷

以前習慣用jlink調試代碼,最近發現jlink老是出現問題,丟固件、無法仿真等等,甚是苦惱,無奈用串口打印的方式來替代jlink調試;

 

串口調試需要使用到半主機模式,具體的調用代碼如下:

#pragma import(__use_no_semihosting)

struct __FILE
{
    int handle;

};

FILE __stdout;

void _sys_exit ( int x )
{

    x = x;
}

int fputc ( int ch, FILE *f )
{
    while ( USART_GetFlagStatus ( USART2, USART_FLAG_TC ) == RESET );

    USART_SendData ( USART2, ( uint8_t ) ch );
    return ch;
}

 

之后便可以使用串口(串口2)進行打印數據了,數據直接可以顯示到PC端或者其他串口接口設備,為方便調試添加如下調試信息:

#define DEBUG_PRINT_INFO(...) printf(__VA_ARGS__)
#define DEBUG_PRINT_VAR(X, ...) printf("file: "__FILE__",function: %s"", Line: %d:"X"\r\n",__FUNCTION__,__LINE__,##__VA_ARGS__) 

第一個函數只是打印我們自定義的信息,第二個函數除了可以打印我們自定義的信息,還可以打印當前運行到的文件、函數名、行號信息,方便了問題查找。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM