[开发生态] 多串口的输出问题

[复制链接]
 楼主| 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 等函数判断该首字符,实际输出则过滤掉此控制字符

评论

这个方式也挺好  发表于 2024-7-26 11:54
 楼主| suncat0504 发表于 2024-7-26 11:53 | 显示全部楼层
ayb_ice 发表于 2024-7-25 13:28
本质是一样的,搞个API切换串口显的高档些

主意不错,我是自己加了一个函数或者全局变量,用来改变输出串口
dalarang 发表于 2024-7-26 14:58 | 显示全部楼层
干嘛非要用printf呢,即便动态指定输出串口还要考虑多个同时调用的冲突处理。
我的做法是改用sprintf格式化为目标字符串,然后自己做send发送。
申小林一号 发表于 2024-10-30 21:29 | 显示全部楼层
感觉可以做个选项
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

158

主题

4514

帖子

6

粉丝
快速回复 返回顶部 返回列表