我有以下C程序:

#include

#include

#include

int main()

{

int fd = open("/dev/ttyS0",O_RDWR | O_NOCTTY | O_NONBLOCK);

if(fd < 0)

{

perror("Could not open device");

}

printf("Device opened\n");

struct termios options;

tcgetattr(fd,&options);

cfmakeraw(&options);

cfsetispeed(&options,B19200);

cfsetospeed(&options,B19200);

tcsetattr(fd,TCSANOW,&options);

char txpacket[] = {0x23,0x06,0x00,0xdd,0xf9};

ssize_t written = write(fd,txpacket,sizeof(txpacket));

printf("Written %d bytes\n",written);

printf("Starting to wait for target to respond\n");

while(1)

{

fd_set readset;

FD_ZERO(&readset);

FD_SET(fd,&readset);

int nCount = select(fd + 1,&readset,NULL,NULL);

if(nCount > 0)

{

if(FD_ISSET(fd,&readset))

{

int i;

char buffer[128];

ssize_t bytesread = read(fd,buffer,sizeof(buffer));

printf("Received %d bytes\n",bytesread);

for(i = 0; i < bytesread; i++)

{

printf(" %02x",buffer[i]);

}

}

}

}

}

该程序打开串行设备/ dev / ttyS0,向其写入一系列数据并开始监听响应.我得到以下输出:

Device opened

Written 6 bytes

Starting to wait for target to respond

Received 0 bytes

Received 0 bytes

Received 0 bytes

Received 0 bytes

Received 0 bytes

Received 0 bytes

...

并且该应用程序消耗100%的cpu.即使目标硬件实际传输它,我也无法接收任何数据.

怎么了?

linux串口写入命令失败,linux – 从串口读取失败相关推荐

  1. LInux 项目二命令总结,linux项目管理常用命令小结

    当前位置:我的异常网» 项目管理 » linux项目管理常用命令小结 linux项目管理常用命令小结 www.myexceptions.net  网友分享于:2015-08-26  浏览:13次 li ...

  2. linux中make命令大全,Linux中的命令 make -f 是什么意思

    二.Makefile的文件名 默认的情况下,make命令会在当前目录下按顺序找寻文件名为"GNUmakefile"."makef ile"."Make ...

  3. linux 限制带宽命令,Linux服务器限制网络带宽流量速率(限制应用程序和指定网卡的流量)

    linux 限制带宽命令,Linux服务器限制网络带宽流量速率 一.限制应用程序的网络流量速率 1.trickle介绍 2.如何判断trickle对应用程序是否有效? 3.Linux安装Trickle ...

  4. linux系统rar命令行,Linux下rar命令详解

    Linux下rar命令详解 发布时间:2010-05-24 23:28:23   作者:佚名   我要评论 通常rar命令由一个主命令加若干选项(可选)构成,操作文档为操作施加的.rar文件对象,文件 ...

  5. linux 监控报文命令 nc,linux监控命令nc用法

    一.nc命令检测端口的用法 # nc -v -w 10 %IP% -z %PORT% -v 显示指令执行过程. -w 设置等待连线的时间. -u 表示使用UDP协议 -z 使用0输入/输出模式,只在扫 ...

  6. linux系统charp命令,操作系统 Linux系统

    Linux操作系统 预备知识(Operating System): 1.GNU项目,GNU项目是一个自由软件项目,旨在建立一个完全自由开放通用的UNIX软件平台. 2.操作系统:管理计算机硬件和软件资 ...

  7. linux 脚本 退出命令,使用linux的exit命令退出shell

    使用linux的exit命令退出shell 发布时间:2020-07-11 11:29:48 来源:亿速云 阅读:103 作者:清晨 栏目:服务器 这篇文章将为大家详细讲解有关使用linux的exit ...

  8. linux添加目录命令权限,linux chmod命令设置目录/文件权限详解

    首页 > Linux教程 > 常用命令 > chmod 文件权限 linux chmod命令设置目录/文件权限详解 linux中chmod命令用于改变系统文件或目录的访问权限,用数字 ...

  9. linux添加服务命令行,Linux系统自有服务(上)

    系统自有服务(上).md Linux系统自有服务 自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置) 学习目标 1.了解Linux的7种运行模式 2.了解用 ...

  10. linux怎么配置命令模式,Linux几种命令模式

    原标题:Linux几种命令模式 必须掌握的几个Linux命令 我们为什么要学习Linux的命令? 初学者上手Linux系统会很懵.不管你是否安装了图形化界面,或者去网上找一些教程.或者一些Linux的 ...

最新文章

  1. CVPR 2020 | 元学习人脸识别框架详解
  2. pyinstaller 编译完exe执行结果 ModuleNotFoundError: No module named ‘sqlalchemy‘
  3. 设计模式之--原型模式
  4. mailto发送邮件
  5. java http 流_java 模拟http请求,通过流(stream)的方式,发送json数据和文件
  6. 【Flink】SqlValidatorException: Column xxx not found in any table
  7. 通过的镜像源安装python包
  8. 源代码分析工具推荐Understand
  9. 向量对矩阵列空间的投影_向量(阵列)处理和超标量处理器
  10. 一只基于Vue2.x的移动端微信UI。 -YDUI Touch
  11. VC++调用IcmpSendEcho函数实现对远端地址的ping检测(附源码)
  12. python3.6源码编译安装 解决SSL报错
  13. STM32智能门锁学习一,按键解锁,蓝牙解锁、oled显示,步进电机
  14. 游戏运营专员的职责有哪些?提高游戏收入的关键是什么?
  15. 做为程序员 给大家推荐不很错的淘宝店
  16. 我指间的刺青是对你的誓言
  17. .tsv以及.csv格式文件
  18. 压缩包下载后php文件怎么打开,用户下载的压缩包rar格式或zip文件如何解压 解压后就可以安装或运行里面的文件了...
  19. 英特尔OpenVINO(TM)工具包为创新智能视觉提供更多可能
  20. wps右边的标记区域怎么去掉_wpsword视图去掉标记 wps怎么取消标记

热门文章

  1. ad19原理图标注_AD19中原理图的模板如何进行编辑?
  2. matlab计算斜方差_计算一幅图像的信噪比
  3. 用了十年的昵称badboy_怎样用5秒钟看清一对夫妻的真实感情状况?
  4. ARM中断分析之三:WinCE驱动的中断分析
  5. linux php cpu,获取Linux服务器性能CPU、内存、硬盘等使用率 PHP
  6. python 管道 异步读取 select_python之异步select解析
  7. openpyxl 绘制饼形图_好享学丨快速上手Pythonmatplotlib 箱线图绘制,学术人必备
  8. innodb 悲观锁 乐观锁_mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁
  9. 请简述计算机硬件系统的运行过程,操作系统简述题
  10. 河流水质指标预测与不确定性分析:机器学习模型的比较研究--文献阅读