linux系统下的串口还在发送的时候,我关闭串口close(fd)会造成关闭失败,这样的话我想检测一下是否发送完成了,如何检测串口是否发送完成,谁知道,请教一下。
1条回答 默认 最新
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Linux下多串口错乱的一般解决方案
- 除此之外, 这篇博客: linux驱动中串口打印调试函数汇总说明中的 2. pr_xxx 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
在Linux中,为方便书写,使用pr_xxx宏对printk进行了封装。同样,在头文件
include/linux/printk.h
中,有如下定义:#define pr_emerg(fmt, ...) \ printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__) #define pr_alert(fmt, ...) \ printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) #define pr_crit(fmt, ...) \ printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__) #define pr_err(fmt, ...) \ printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) #define pr_warning(fmt, ...) \ printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) #define pr_warn pr_warning #define pr_notice(fmt, ...) \ printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__) #define pr_info(fmt, ...) \ printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) /* If you are writing a driver, please use dev_dbg instead */ #if defined(CONFIG_DYNAMIC_DEBUG) /* dynamic_pr_debug() uses pr_fmt() internally so we don't need it here */ #define pr_debug(fmt, ...) \ dynamic_pr_debug(fmt, ##__VA_ARGS__) #elif defined(DEBUG) #define pr_debug(fmt, ...) \ printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) #else #define pr_debug(fmt, ...) \ no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__) #endif
使用pr_xxx打印可以省略KERN_DEBUG等宏,其书写格式和应用层的printf一样。调试信息打印使用
pr_debug
,提示信息打印使用pr_info
。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥100 微信小程序跑脚本授权的问题
- ¥100 房产抖音小程序苹果搜不到安卓可以付费悬赏
- ¥15 STM32串口接收问题
- ¥15 腾讯IOA系统怎么在文件夹里修改办公网络的连接
- ¥15 filenotfounderror:文件是存在的,权限也给了,但还一直报错
- ¥15 MATLAB和mosek的求解问题
- ¥20 修改中兴光猫sn的时候提示失败
- ¥15 java大作业爬取网页
- ¥15 怎么获取欧易的btc永续合约和交割合约的5m级的历史数据用来回测套利策略?
- ¥15 有没有办法利用libusb读取usb设备数据