打印
[开发生态]

多串口的输出问题

[复制链接]
519|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
suncat0504|  楼主 | 2024-7-24 19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
根据经验,想使用printf格式化输出,需要实现putcha处理。在使用多个串口的场合,能否动态指定printf输出的目标串口?我之前的做法是加一个全局变量,在putchar中,根据这个全局变量指向的串口来输出数据,有没有更好的办法?或者自己做一个特殊的printf函数,在参数里指定输出串口。

使用特权

评论回复
沙发
LEDyyds| | 2024-7-25 10:33 | 只看该作者
没遇到过这个需求,不懂帮顶

使用特权

评论回复
板凳
ayb_ice| | 2024-7-25 13:28 | 只看该作者
本质是一样的,搞个API切换串口显的高档些

使用特权

评论回复
地板
dukedz| | 2024-7-25 14:12 | 只看该作者
本帖最后由 dukedz 于 2024-7-25 14:17 编辑

可以参考 linux 内核打印,打印的首字符是指定优先级的,譬如 printk(KERN_WARNING "your message ...");

你可以把首字符用来控制输出到哪个串口,然后底层 _write 或者 putc 等函数判断该首字符,实际输出则过滤掉此控制字符

使用特权

评论回复
评论
suncat0504 2024-7-26 11:54 回复TA
这个方式也挺好 
5
suncat0504|  楼主 | 2024-7-26 11:53 | 只看该作者
ayb_ice 发表于 2024-7-25 13:28
本质是一样的,搞个API切换串口显的高档些

主意不错,我是自己加了一个函数或者全局变量,用来改变输出串口

使用特权

评论回复
6
dalarang| | 2024-7-26 14:58 | 只看该作者
干嘛非要用printf呢,即便动态指定输出串口还要考虑多个同时调用的冲突处理。
我的做法是改用sprintf格式化为目标字符串,然后自己做send发送。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:大连伊飞特信息技术有限公司软件工程师
简介:本人于1993年毕业于大连理工大学。毕业后从事单片机开发工作5年,之后转入软件开发工作至今。

106

主题

3208

帖子

5

粉丝