SPI(Serial Peripheral Interface)协议是由摩托罗拉公司提出的通讯协议,即串行外设接口,是一种高速全双工的通信总线。SPI 总线系统是一种同步串行外设接口,它可以使 MCU 与各种外围设备以串行方式进行通信以交换信息。
分为四条分别是MISO(主设备输入(接收)、从设备输出(发送)引脚) MOSI (主设备输出(发送) 从设备输入(接收)引脚) SCK NSS
SPI 通信采用主从模式(Master Slave)架构如图 8.1 所示,一般仅支持单Master 多 slave 模式应用,时钟由 Master 控制,在时钟移位脉冲下,数据按位传输,高位在前,低位在后(MSB first)
SPI总线有四种工作模式由时钟的极性CPOL和相位CPHA进行配置
(00 01 10 11)
SPI2 SPI3 挂载在总线APB1上 SPI1 挂载 APB2
APB1 为 fpclk1=36MHz,APB2 为 fpckl2=72MHz
2.4G通信
nRF24L01 是由 NORDIC 公司生产的工作在 2.4GHz~2.5GHz 世界通用 ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强SchockBurstTM 模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率、频道选择和协议等可以通过 SPI 接口进行设置
(点对点单工通信)
主要有 高频点 自应答 低功耗 低成本等优点
有八个引脚进行配置
SPI的HAL库分析
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
以阻塞方式发送数据量(等待数据发送完成)
huart1 指向结构体的指针(包含有uart的信息)
(uint8_t *)&ch 指向上面定义的数据缓冲区
1 要发送的数据元素(u8或u16)的数量
0xFFFF 设置超时的时间
释放不同的定义 #ifdef #else #endif 进行不同的选择