IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> SPI通信协议和2.4G总结 -> 正文阅读

[嵌入式]SPI通信协议和2.4G总结

SPI

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 进行不同的选择

#ifdef  标示符      
  程序段1      
#else         
  程序段2     
#endif 
表示:如果标示符已经被#define命令定义过,则编译程序段1,否则编译程序段2
2:#if 表达式      
   程序段1    
#else         
  程序段2    
#endif
表示:如果表达式为真,则编译程序段1,否则编译程序段2.
你写出的命令应该属于格式1
  它的意思是,如果在程序中没有对**进行过#defined ** 的定义。则编译下面的语句,否则不编译。这中情况多用在需要经常移植的程序模块上,或是调试的时候用.
  结合使用 #if 与 #else、#elif、#endif、#define 和 #undef 指令,可以根据一个或多个符号是否存在来包含或排除代码。 在编译调试版本的代码或针对特定配置进行编译时,这会很有用。
以 #if 指令开始的条件指令必须用 #endif 指令显式终止。
#define 使您可以定义一个符号,通过将该符号用作传递给 #if 指令的表达式,使该表达式计算为 true。

在这里插入图片描述

在这里插入图片描述

HAL_SPI_IRQHandler(&hspi2);:处理SPI中断请求


__weak void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi):
SPI收入捕获反馈


HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size)
用中断以非阻塞方式传输数据量。
HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi)
根据SPI_InitTypeDef中的指定参数初始化SPI,并初始化相关的句柄

HAL_SPI_MspInit(hspi);初始化SPI MSP
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:31:43  更:2021-11-23 12:33:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:26:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码