linux获取打开串口失败的原因,linux – 从串口读取失败
我有以下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 – 从串口读取失败相关推荐
- linux中打开pdf文件_在Linux中减少PDF文件大小
linux中打开pdf文件 In our Linux system, If we have a large PDF file, we may want to reduce it's size. We ...
- linux获取java环境变量的值,linux获取java环境变量的值
linux获取java环境变量的值 [2021-02-11 00:17:01] 简介: 服务器 这篇文章主要为大家展示了linux环境下怎么配置环境变量,内容简而易懂,希望大家可以学习一下,学习完之 ...
- arcgis构建金字塔失败什么原因_天猫入驻为什么失败?知舟集团给出失败原因和解决办法...
市场是有限的,竞争是无限的,前有京东.唯品会.拼多多.苏宁易购等多个平台争先恐后,后有云集.极有家等多个新平台如雨后春笋般起,但是在众多电商平台中,天猫依然独占鳌头,保持市场份额第一的趋势,这也是无数 ...
- 信用社服务器获取安装文件失败是怎么回事,安装驱动器读取失败是怎么回事
大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 安装驱动器读取失败的原因有: 1.光驱连接不当造成 光驱安装后,开机自检,如不能检测到光驱,则要认真检查光驱排线的连接是否正确.牢 ...
- linux tomcat启动失败的原因,Linux平台Tomcat启动失败问题排查
部署在 Linux 服务器上边的 Tomcat服务通常在项目更新的时候需要重新启动,但是会由于各种原因,导致 Tomcat 启动失败,本文将以Linux 发行版 centOS 7 系统为例介绍两种 T ...
- linux添加失败的原因,linux下execvp失败设置errno=7的原因是什么?
看下面的代码 int main(int c,char** v) { v[c-1] = NULL; execvp("ls",v); perror("execvp" ...
- linux 获取和释放信号量_学习Linux(39)信号量
进程信号量基本概念 信号量与已经介绍过的 管道.FIFO以及消息列队不同,它本质上是一个计数器,用于多进程间对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源( ...
- linux 获取文件夹下文件信息,linux下获取文件夹下子文件列表
linux下获取文件夹下子文件列表 预置条件: 1.只遍历当前目前,不遍历当前目录的子文件夹 2.根据用户提供的开始时间戳以及持续时间,返回在这个时间区间内被修改过的文件列表. 相关知识: 1.str ...
- linux获取网卡的ip,Windows和Linux系统下获取多网卡的ip地址
在Windows或者Linux操作系统中,获取多网卡信息,可通过执行命令方式获取,具体如下: public Vector getServerIps() { Vector address = new V ...
最新文章
- 聊聊flink的Tumbling Window
- 初识ES-安装kibana
- JAVA笔记14__多线程共享数据(同步)/ 线程死锁 / 生产者与消费者应用案例 / 线程池...
- Minimum Ternary String CodeForces - 1009B(思维)
- Android 4.X 系统加载 so 失败的原因分析
- 38岁超任模拟器设计者自杀!死前留下真名与神秘自拍照,最后一刻开源higan
- 有零基础开始学习python的小伙伴吗?学起来难吗?
- 阿里实名认证Java版(详细教程)
- jquery打印网页当前页
- hive表分区上传数据出现的一个问题及解决思路
- SpringBoot启动流程简要
- java中系统托盘的实现
- [LeetCode] 871. Minimum Number of Refueling Stops
- shell-判断是不是文件夹
- 【Verifying transaction: failed】
- 攀爬Spring珠穆拉玛峰:Spring的启动流程
- 条码软件如何实现扫描二维码显示汉字
- 一个简单的购物车加减按钮
- SQL Server从入门到精通(转)
- GitLab+Shell用户周期性数据统计分析工具(自动生成HTML格式)
热门文章
- IE11不支持Selenium 2.0的解决方法
- 解决小程序背景图片在真机上不能查看的问题
- layui报错 “Layui hint: 模块名 xxx 已被占用“ 的问题解决方案
- 静态类型和动态类型的语言有什么区别?
- win7旗舰版系统如何重装系统win10
- java jdbc mysql util_Java,Scala:JDBCUtil,MySqlUtil,PhoenixJDBC
- ubuntu 分区_系统小技巧:迁移通过Wubi方式安装的Ubuntu系统
- 手机logging什么意思_手机三轴稳定器的“三轴”是什么意思?
- 利用函数求两个数的最大值
- 盒子模型之外边距margin(HTML、CSS)