当前位置:  技术问答>linux和unix

串口收到的数据存储到文件,出现了怪现象

    来源: 互联网  发布时间:2016-07-21

    本文导语:  上位机向串口每次发送10个字节,内容是从0——150,第一次发:0x00 0x01 0x02 …… 0x09,然后第二次发:0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13,然后依次增加,直到0x95(也就是十进制的150),然后再次循环发送...

上位机向串口每次发送10个字节,内容是从0——150,第一次发:0x00 0x01 0x02 …… 0x09,然后第二次发:0x0A 0x0B 0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13,然后依次增加,直到0x95(也就是十进制的150),然后再次循环发送。
我在LINUX下编写C程序接收串口数据,也是每次收10个字节,放到一个unsigned char的数组中,然后将这10个字节存储到文件中。
接收一段时间后,我打开文件查看接收内容,发现有个问题:
直接用vim打开,发现第一行是空行,从第二行才开始有内容,由于是十六进制的内容,显示出来就都是乱七八糟的符号了。
然后我输入命令,以十六进制显示,发现第一行是从0x0A开始显示,依次向后,但是前面的0x00 0x01 …… 0x09不见了,真是奇怪了。
我继续向后面看,发现后面没有这种问题,到0x95(十进制150)后,后面紧跟着就是00 01 02 03 04 05 06 07 08 09 0A……,也就是说只有第一次收到的10个字节丢掉了,不知道怎么回事。
有可能是因为十六进制的0A表示换行,但是为什么后面的都正常呢?而且即使有换行,第一次收到的10个字节的数据也没有道理丢失啊?郁闷中。
请高手指教

|
发个代码上来瞧瞧噻, 这么说看不出是什么问题。

|
            read(fd4,&buff4[m4],10);   
            fdfile=open("/tmp/temp1",O_WRONLY | O_CREAT | O_APPEND);
            write(fdfile,&data4[1],m4);
            close(fdfile);
                        sleep(1);

你 这个  m4 怎么来 的 ?值又是什么 ?

读到  &buff4[m4]
写入确实 从 &data4[1]
这。。。。不对吧。。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • linux下几个设备通过串口串行连接,如何协调各串口发送数据
  • 散分100,求解串口键盘和串口鼠标驱动
  • Linux 中用java语言写串口程序,提示找不到串口
  • 高分求助:我笔记本没有串口,在linux下要和一个串口设备连,怎么办?
  • 关于linux串口通信中写串口的问题
  • 开发板串口与实际内核中的串口文件的对应关系怎么回事?谢谢帮忙
  • 工控机有6个串口,但用光盘安装debian6.05,在dev中只找到4个串口,如何解决。
  • linux下串口发送数据用串口精灵接受不到或为全零
  • 在虚拟Linux系统下能进行串口通讯吗?最好给个串口通讯的代码!谢谢!
  • 要加多个串口,怎么分别指定他们的driver_name和dev_name以示区别各个串口?
  • 工控机上用光盘安装debian6.05,硬件上有6个串口,但是软件上即dev中只有4个串口,如何解决。
  • 嵌入式linux,串口初始化时,无法设置串口属性
  • 扩展的串口卡上的串口操作的问题
  • 请教串口通信的编程
  • 请问如何以独占的方式打开串口
  • linux串口驱动该怎么写
  • 虚拟串口怎么读数据? 请有 串口 或者 usb 驱动经验的高手指点
  • linux下如何清空串口的输入输出缓存
  • linux下怎么监控串口?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3