pixy php,Pixy2与STM32进行SPI通信

pixy php,Pixy2与STM32进行SPI通信_第1张图片

简单来说,如果你通过检索从而看到这篇文章,那就假设你已经知道Pixy2是用来干什么的(一款功能强大的开源视觉传感器),以及你已拥有一些STM32基础。你可以通过访问官方手册来获得更多关于Pixy2的相关信息。

如果你已经非常了解Pixy2的运作模式,只是想快速与STM32建立通信,那么你可以直接参考我的代码:

通常情况下Pixy2是搭配Arduino使用的,并且Pixy2能通过SPI以2 Mbits/秒的速度向Arduino发送信息。不过如果让Pixy2与不同的平台进行通信,首先就要确定以哪种方式进行通信。官方给出Pixy2支持的通信方式有SPI、I2C、UART、USB和Analog/digital,并且通信速度USB>SPI>I2C>UART>A/D。本文将具体描述Pixy2与STM32的SPI通信。

设置与连接

首先,你需要去官网下载一个叫PixyMon的软件,它能让你在Windows或Mac平台对Pixy2进行设置。

pixy php,Pixy2与STM32进行SPI通信_第2张图片

将你的Pixy2与电脑用USB线连接后,打开软件,在Configure-Interface-Data out port选项中,我们选择Arduino ICSP SPI。是的,即使是与Arduino通信的SPI选项,也可以应用到STM32上,其他选项不用更改。

设置好后,我们把Pixy2与电脑连接的USB断开,用杜邦线将Pixy2与STM32连接,我这里用的STM32是正点原子的STM32mini开发板。在连接之前,我们先看一下Pixy2的管脚图:

pixy php,Pixy2与STM32进行SPI通信_第3张图片

在Arduino ICSP SPI模式中主要用到(1)(3)(4)三个管脚,还有5V和GND与STM32的5V和GND直接相连就行了,两者具体的连接方法如下:

Pin 1 (SPI MISO) ➜ PA6 (STM32 SPI MISO signal)

Pin 4 (SPI MOSI) ➜ PA7 (STM32 SPI MOSI signal)

Pin 3 (SPI SCK) ➜ PA5 (STM32 SPI SCK signal)

Pin 2 ➜ 5V (STM32 5V)

Pin 6 ➜ GND (STM32 GND)

串口协议

Pixy2是以数据包的形式来和上位机进行通信的,也就是说,想要和Pixy2通信,你必须向Pixy2发送一个请求数据包,然后Pixy2再把你想要得到的数据或者状态用数据包发给你。所以你的请求/反馈数据包就像下面的格式:

Requests-(你发给pixy的)

字节

说明

数值

0-1

16-bit sync

174, 193 (0xc1ae)

2

Type of packet

(varies)

3

Length of payload in bytes (len)

(varies)

4-len

Variable length payload

(varies)

Responses-(pixy发给你的)

字节

说明

数值

0-1

16-bit sync

175, 193 (

你可能感兴趣的:(pixy,php)