串行的linux C结构缓冲区

用户名

如何正确地从串行构造缓冲区。

int serialCheckforBuffer (int fd)
{
  int result ;
  if (ioctl (fd, FIONREAD, &result) == -1)
  return -1 ;
  return result ;
}

int serialGetchar (int fd)
{
  uint8_t x ;
  if (read (fd, &x, 1) != 1)
  return -1 ;
  return ((int)x) & 0xFF ;
}

我正在这样阅读

for (;;)
{

    while (serialCheckforBuffer (fd))
     {
      printf ("%02X", serialGetchar(fd));
      fflush (stdout) ;
     }
     usleep(10000);
}

输出结果为“ 071E00000118”

我如何构造我的读取缓冲区以适合这样

    struct obj_Properties
    {
       int Type;
       int ID;
       int Index;
       unsigned int msb;
       unsigned int lsb;
       int chksum;
    };

因此,如果我再次阅读,它将采用这种格式

   struct obj_Properties prop;
   printf ("%02X %02X %02X %02X %02X %02X", prop.Type, prop.ID, prop.Index, prop.msb,    prop.lsb, prop.chksum);

我尝试了代码,但没有成功。也许我想念一些东西。

  void buildBuffer(struct obj_Properties *buffer)
  {
     while((serialCheckforBuffer(fd)) == -1)
     usleep(1000);
     memcpy(buffer, &sBuffer, sizeof(struct obj_Properties));
  }
CDahn

在while循环中,不要循环打印输出值,而是分配它们:

prop.Type = serialGetchar(fd));
prop.ID = serialGetchar(fd));
prop.Index = serialGetchar(fd));
prop.msb = serialGetchar(fd));
prop.lsb = serialGetchar(fd));
prop.chksum = serialGetchar(fd));
printf ("%02X %02X %02X %02X %02X %02X", prop.Type, prop.ID, prop.Index, prop.msb,    prop.lsb, prop.chksum);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linux:简单 C 程序的缓冲区溢出导致 SIGBUS

来自分类Dev

C- Linux- 创建线程并传入缓冲区

来自分类Dev

C# 如何获取串行写入缓冲区上的字节数?

来自分类Dev

将数据从Arduino内部串行缓冲区移至内存

来自分类Dev

Linux画像素缓冲区

来自分类Dev

从C ++中的缓冲区提取IP地址(Linux套接字)

来自分类Dev

从串行端口Linux C读取NULL字符

来自分类Dev

Linux和页面对齐缓冲区上的read()

来自分类Dev

64位Linux上的缓冲区溢出

来自分类Dev

增加Linux中的Shell缓冲区大小

来自分类Dev

禁用特定文件上的缓存/缓冲区(Linux)

来自分类Dev

如何在Linux上获取相机缓冲区?

来自分类Dev

限制Linux中缓冲区缓存的大小

来自分类Dev

如何减少可移动设备的Linux写缓冲区?

来自分类Dev

如何找出Linux内核环形缓冲区的大小?

来自分类Dev

增加Linux终端回滚缓冲区的大小

来自分类Dev

Linux中如何测量帧缓冲区的渲染时间?

来自分类Dev

在C中为未知(大小)结构创建缓冲区

来自分类Dev

为C中的缓冲区(结构类型)分配内存

来自分类Dev

Windows中的串行通信-ClearCommError在读取缓冲区中找不到数据

来自分类Dev

Raspberry:如何检查串行端口的写缓冲区中的剩余字节

来自分类Dev

缓冲区管理和从串行数据中提取帧

来自分类Dev

如何在同一Python脚本中读写串行缓冲区?

来自分类Dev

在Linux / C编程中,使用功能write也可以将指示器移动到缓冲区上吗?

来自分类Dev

Linux-C:从管道读取将返回写入其的第一个缓冲区

来自分类Dev

C ++ Linux(Ubuntu)正确写入串行(对于Arduino)

来自分类Dev

Linux串行端口编程c_cc字符配置

来自分类Dev

包结构返回缓冲区

来自分类Dev

将缓冲区转换为结构

Related 相关文章

  1. 1

    Linux:简单 C 程序的缓冲区溢出导致 SIGBUS

  2. 2

    C- Linux- 创建线程并传入缓冲区

  3. 3

    C# 如何获取串行写入缓冲区上的字节数?

  4. 4

    将数据从Arduino内部串行缓冲区移至内存

  5. 5

    Linux画像素缓冲区

  6. 6

    从C ++中的缓冲区提取IP地址(Linux套接字)

  7. 7

    从串行端口Linux C读取NULL字符

  8. 8

    Linux和页面对齐缓冲区上的read()

  9. 9

    64位Linux上的缓冲区溢出

  10. 10

    增加Linux中的Shell缓冲区大小

  11. 11

    禁用特定文件上的缓存/缓冲区(Linux)

  12. 12

    如何在Linux上获取相机缓冲区?

  13. 13

    限制Linux中缓冲区缓存的大小

  14. 14

    如何减少可移动设备的Linux写缓冲区?

  15. 15

    如何找出Linux内核环形缓冲区的大小?

  16. 16

    增加Linux终端回滚缓冲区的大小

  17. 17

    Linux中如何测量帧缓冲区的渲染时间?

  18. 18

    在C中为未知(大小)结构创建缓冲区

  19. 19

    为C中的缓冲区(结构类型)分配内存

  20. 20

    Windows中的串行通信-ClearCommError在读取缓冲区中找不到数据

  21. 21

    Raspberry:如何检查串行端口的写缓冲区中的剩余字节

  22. 22

    缓冲区管理和从串行数据中提取帧

  23. 23

    如何在同一Python脚本中读写串行缓冲区?

  24. 24

    在Linux / C编程中,使用功能write也可以将指示器移动到缓冲区上吗?

  25. 25

    Linux-C:从管道读取将返回写入其的第一个缓冲区

  26. 26

    C ++ Linux(Ubuntu)正确写入串行(对于Arduino)

  27. 27

    Linux串行端口编程c_cc字符配置

  28. 28

    包结构返回缓冲区

  29. 29

    将缓冲区转换为结构

热门标签

归档