linux下串口通信,第一次可以读数据,然后往串口写数据,再读数据却读不出,求帮助

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-06-28
读串口为什么只能读到一个数据

应该是你设置的问题,SSCOM32和串口调试助手只是单纯的串口协议收发,你把超级终端和SecureCRT里面的数据流控制关掉试试

你的这个串口设备在打开(也就是调用open函数获取设备描述符)的时候设置的是非阻塞方式。导致串口上没数据的时候read也立即返回,但是你的while已经把有效的数据读走了,if里面读到的一定是空的,所以什么也不打印。

建议
1. 在打开串口设备时使用阻塞方式,不会设置的话查查open系统调用的帮助,它有个flag;
2. 把while循环内的if语句去掉。

A<==RS232==>B,A和B通信,通过RS232协议,读数据的话,是读对方发来的数据;写数据的话,是给对方写数据。所以,要用个while死循环,始终监听串口是否读到数据。

  • 查看Linux串口信息查看linux串口
    答:在串口的驱动程序注册的open函数里加入这样一句话:printk("process%dhasopenttyn",current->pid);可以判断出来哪个进程打开了串口设备,或者是否有进程打开串口current->pid的值表示进程号!linux和windows怎么配置串口连接?串口连接一般是电脑跟设备之间的连接。串口通信是设备调试最常用的方式之一,此外还有...
  • linuxc串口接收linuxc串口
    答:如何用C语言写一个读、写串口的程序?大致过程就是 配置串口通信,包括串口号、波特率、校验位、停止位这些信息;打开串口,和打开文件一样,在Linux下是这样,Windows下没试过,估计也差不多;发送数据,即写串口,就跟写文件类似;读取串口,用read就行。具体的函数和配置参数可以参考一些别人的代码。...
  • 串口通信linux
    答:据我所知,在嵌入式设备上,串口一直是最主流的调试接口。linux和windows怎么配置串口连接?串口连接一般是电脑跟设备之间的连接。串口通信是设备调试最常用的方式之一,此外还有网口、并口等。linux系统怎么修改端口波特率?嵌入式系统经常会通过串口打印调试信息,在Linux环境下,可以使用stty设置串口波特率等...
  • Linux串口设置clinux串口设置
    答:如何用C语言写一个读、写串口的程序?大致过程就是 配置串口通信,包括串口号、波特率、校验位、停止位这些信息;打开串口,和打开文件一样,在Linux下是这样,Windows下没试过,估计也差不多;发送数据,即写串口,就跟写文件类似;读取串口,用read就行。具体的函数和配置参数可以参考一些别人的代码。...
  • linux驱动串口linux驱动串口
    答:怎样看linux串口驱动中断dma?查询就是一直在查看标志位,是不是被置1了,如果是就去读或者其他操作中断就是平时不用管,一单有东西来就会进入中断服务程序,你再去操作DMA是你初始化的时候把串口地址和需要传输的地址写上,来东西他就自己把数据存到你初始化的地址上 如何设置串口1作为linux调试信息...
  • linux通讯
    答:单片机怎么和linux联系起来?单片机和linux联系起来可以试试从以下方式操作进行因为标准的linux系统”是一个没有根据的说法。可以在ubuntu网站上下载到arm单片机上运行的版本。修改自tq的serial_testdemo程序,由pc端得串口ttyS0和tq2440的uart1口进行数据linux与单片机串口通信繁体进入即可 ubuntu的软件库能装...
  • Linux普通用户运行串口
    答:将USB串口设备插入USB口后,会在/dev/目录下生成/dev/ttyUSB0文件(也可能为/dev/ttyUSB1,/dev/ttyUSB2...),查看此文件 输出为:c说明表明设备为字符设备文件(d表示目录文件,-表示普通文件,l表示链接文件,b表示块文件),其中rw-rw---表示root用户作为文件所有者可以读和写,dialout用户组内...
  • linux串口程序无环境变量linux串口程序
    答:设置完成,回车,光标会回到“changewhichsetting”后面,如此重复。完成按回车返回主菜单即可。linux下安装串口卡驱动(高手请进)?一般的安装驱动:找到src包,都是源程序makeinstall就可以了goodluck 如何用C语言写一个读、写串口的程序?大致过程就是 配置串口通信,包括串口号、波特率、校验位、停止位...
  • 怎么在Linux下通过串口通信啊?树莓派!
    答:首先是你的平台是什么(cpu),用ioremap函数映射相关寄存器地址,然后就设置串口(uart)寄存器。我只会ARM平台,linux下串口的驱动。
  • qtlinux串口
    答:指纹模块与arm9开发板通过串口通信,qt编程?用WIFI连入同一个局域网以后SOCKET;或者蓝牙;或者用USB,一主一从;或者用USB转串口,手机上安装对应驱动,调用驱动接口,开发板这头就按串口通信就行了 通信方式很多地,具体方式要看你自己的需求来确定了。如何使用Qt编程实现串口接收不定长数据帧?1、...