在数据表

时间:2016-03-16 12:03:00

标签: camera arduino command hex

我正在阅读相机的数据表。

Datasheet

我的Arduino通过SPI与摄像头通信,可以发送命令拍照。

最后一步是发送一个命令来检索我坚持的数据。

在第4页上,命令DATA是

  

FF FF FF 0x0A 0X05长度字节0长度字节1长度字节2'

因此在代码中命令看起来像这样。但是我如何计算长度字节0,字节1长度字节2是什么?

uint8_t DataCmd[8] = { 0xff, 0xff, 0xff, 0x0a, 0x05, ?, ?, ?};

第6页上说

  

图像长度= len 0 + Len 1 * 100h + Len 2 * 10000h

这是什么意思?如何将其转换为我的命令所需的三个参数?

1 个答案:

答案 0 :(得分:1)

正如您所看到的,DATA命令是相机发送给您的命令。第9页的流程图显示了它的作用

  1. 当相机收到"获取图片",
  2. 准备好了吗?如果没有发送NAK并返回
  3. 如果是发送ACK
  4. 发送DATA命令(带长度)
  5. 发送图片数据
  6. 等待主机发送ACK
  7. 您必须执行以下步骤。我将它们复制到这里以供将来参考:

    • 与相机建立通信
    • 发送命令INIT(例如FFFFFF0100870107h)
    • 等待ACK(例如FFFFFF0E01nn0000h)
    • 发送命令SELECT IMAGE QUALITY(例如FFFFFF1000000000h)
    • 等待ACK(例如FFFFFF0E10nn0000h)
    • 发送命令GET PICTURE(例如FFFFFF0405000000h)
    • 等待ACK(例如FFFFFF0E04nn0000h)
    • 等待DATA(例如FFFFFF0AnnL0L1L2h)
    • 接收图像数据

    DATA包包含L0,L1和L2,其中包含数据图像长度。 L0是低位字节,所以如果L0 = 0x45,L1 = 0x23,L2 = 0x01,则总长度为0x012345 = L0 + L1 * 0x100 + L2 * 0x1000;这意味着图像是0x12345 = 74565字节,因此您知道在实际接收它们之前将接收多少字节

相关问题