最近做数据采集,需要用串口,但是各种输出格式转换很麻烦,想来还是printf比较方便,后来坛里搜到了教程,但是不知道为什么我按照教程试了,没有反应都,以下几篇都试过了: https://www.stmcu.org.cn/module/forum/thread-598389-1-1.html https://www.stmcu.org.cn/module/forum/thread-602600-1-1.html 也可能两位大神用的都是基于标准库的,我想请教下哪位能帮我弄个基于HAL的printf重定向?直接在nucleo上运行,非常感谢! |
N411printf.rar
2015-9-9 22:38 上传
点击文件名下载附件
下载积分: ST金币 -15.5 MB, 下载次数: 182, 下载积分: ST金币 -1
#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif
PUTCHAR_PROTOTYPE
{
HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
这个是HAL 库下的printf 使用方法。。 你用cube配置好串口就可以了。。
多谢大神!搞定了,原因找到了:我在printf之前使用了串口中断方式发送了两个字节数据,造成后面都没反应!
多谢大神!搞定了,原因找到了:我在printf之前使用了串口中断方式发送了两个字节数据,造成后面都没反应!
原因找到了!已经解决,
可惜最佳答案只能选一个,多谢大神帮助!
楼主其实是自己解决的。
解决问题就好。。。
谢谢!
大神我还有一个疑问,如果不用printf我怎么控制串口传送的格式呢?比如我要将大量数据通过串口DMA方式传送给上位机,但是我需要的是十进制数据,不是十六进制,可能还需要标点符号间隔……求指点!