ARM嵌入式学习笔记(10)SPI通信

ARM嵌入式学习笔记(10)SPI通信

SPI简介

SPI 协议是摩托罗拉公司开发的一种高速的,全双工,同步的通信总线,使用四根线进行通信,具有简单易用,通讯速度高的特点。SPI 总线上可以挂载多个设备,这些设备被区分成主设备(Master)和从设备(Slave),主设备通过时钟线和片选线对从设备进行控制。
SPI 协议所使用到的引脚及其功能见下表
在这里插入图片描述
SPI 是一种全双工的通信协议,主设备和从设备通信时,两端的收发是同步进行的,即主设备和从设备在向对方发送数据的同时,也在接收对方发来的数据。
SPI 的通信过程如下:

  1. 主设备将要进行通讯的从设备的 SS/CS 片选拉低,
  2. 主设备通过 SCK 向从设备提供同步通讯所需要的时钟信号。
  3. 主设备通过 MOSI 向从设备发送 8 位数据,同时通过 MISO 接收从设备发来的 8 位数
    据。
  4. 通信结束,主设备拉高 SS/CS 片选。

SPI在CubeMX中的配置

这里我们只驱动WS2812,所以选择主机发送模式即可在这里插入图片描述
在这里插入图片描述

WS2812代码

//ws2812.h
#ifndef __WS2812_H__
#define __WS2812_H__

#include <stdint.h>

//            编码 0 : 11000000
#define CODE_0		0xC0
//            编码 1 : 11111000
#define CODE_1		0xF8
/*ws2812b灯珠数量*/
#define WS2812B_AMOUNT		9

typedef struct
{
   
    uint8_t R;
    uint8_t G;
    uint8_t B;
} tWs2812bCache_TypeDef;

/**
 * @brief HSV颜色空间
*/
typedef struct {
   
    float h;    // 色调H(hue)  0~360° {R(0°),G(120°),B(240°)}
    float s;    // 饱和度S(saturation)  0~1.0
    float v;    // 明度V(value)  0~1.0
}color_hsv_t;

typedef 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值