推薦碼農一款好的瀏覽國外網站工具:>>>梯子<<<
瀏覽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__)
第一個函數只是打印我們自定義的信息,第二個函數除了可以打印我們自定義的信息,還可以打印當前運行到的文件、函數名、行號信息,方便了問題查找。