一,简介
在程序调试的过程中,需要用到串口打印信息来判断单片机程序运行是否正确。需要使用串口对printf进行重定向,本文就介绍一下ARM官方推荐的一种重定向的方法,供参考使用。
二,具体步骤
主要分为两步:
1,将retarget文件复制到工程;
2,重新实现sendchar和getkey函数;
2.1 将retarget.c添加到project
在keil的安装目录(xx/ARM/Startup)下,找到retarget.c文件,复制到工程目录:
这里我复制到我的工程目录(xx\Core\Src)下:
将retarget.c添加到工程:
看到工程里有retarget文件,代表文件添加成功。
2.2 重新实现sendchar和getkey函数
官方推荐在Serial.c中进行实现,本文为了方便演示直接在main函数中进行实现:
注:getkey函数因为在调试的过程中用不到所有暂时不实现,有必要用到时再进行实现。
调用验证printf函数打印是否成功:
在main函数的while(1)中添加调用代码:
2.3 编译下载验证效果
可以看到printf调试信息已经在循环打印了,确认printf重定向成功。
三,总结
本文主要介绍如何使用keil自带的retarget.c进行printf重定向,供参考。