首页 > 代码库 > 代码调试之串口打印
代码调试之串口打印
以前习惯用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__)
第一个函数只是打印我们自定义的信息,第二个函数除了可以打印我们自定义的信息,还可以打印当前运行到的文件、函数名、行号信息,方便了问题查找。
代码调试之串口打印
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。