2 dke2008 dke2008 于 2016.03.10 15:29 提问

关于SPI通信的一个小疑问

SPI是串行外设接口的简称,多用于系统内部通信,直接传送数据即可。

我想问的是,一般像Modbus,can总线等都有应用层的协议,规定了标识符,地址,功能码等等。
那么spi呢,比如我有好几个变量,ucA,ucB,ucC,甚至还有类型不对齐的数据,我该怎么传输,又如何能分的清传输来的数据是哪个变量的。
要自己弄个协议?一般是怎么实现的呢
谢谢了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
SPI通信协议学习总结
SPI通信 1.简介 这里介绍STM32通过SPI实现对外部SPIFlash的读写功能,其中,SPI作为主设备,SPIFlash作为从设备。为了验证SPI Flash收到的数据是否是STM32通过SPI发送给它的数据,我们将SPIFlash读取的数据显示在屏幕上(TFTLCD)。 1.1 SPI简介 SPI就是串行外围设备接口,它是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占
SPI相关理论知识总结
关于SPI接口和协议的介绍,以及SPI的优缺点,以及SPI时序的介绍。
stm32f407 spi 双机通信
stm32f407 spi 双机通信 这两天一直调试 发现不稳定 经过测试 发现 是  SPI_InitStruct.SPI_CPOL = SPI_CPOL_High;修改为SPI_InitStruct.SPI_CPOL = SPI_CPOL_Low; 就可以稳定了。
STM32_SPI多机通信的实现——整理自网络
用DMA的SPI双机通信中几个很容易出错的点: 1)分频值:SPI的频率最高为18M,SPI1是在频率为72M的APB2上,而SPI2是在频率为36M的APB1上。如果芯片时钟频率为72M,那么SPI1的分频值为4,SPI2的分频值为2. 2)开DMA顺序:我在网上看到有人说要先开从机发送、再开主机发送、再开从机接收、最后开主机接收。我不知道为什么要这么开,而且这种开DMA方式是很难实现的
MSP430的SPI通信例程(SD卡初始化-理论解说)
最近需要做一个数据存储,发现SD卡这一块还不太好弄 现在的单片机有相当一部分还不支持SDIO,比如MSP430(据我所知,如果有支持的型号了还请及时告诉我~),所以只好用SPI通信来进行SD卡的操作,虽然后续涉及到更为复杂的FAT等等,但是首先需要解决的仍然是建立通信的问题。采用的单片机型号为MSP430F5438A,用了一个开发板。SPI通信基本例程例程及解释如下://=============
SPI通信方式总结
SPI 通信方式总结在SPI通信中,通信管脚的配置是一部分,而对于通信的配置则显得跟重要,因为这个配置错误的话,会导致接收的数据是错位的,并且这个跟从设备相关。 下面已STM8L的SPI为例:
解释MTK平台SPI总线参数的含义
解释MTK平台SPI总线参数的含义   chip_config就是从设备spi_device。对应的时间就是:设定的数值×9.6ns。如low_time = 10*9.6ns =96ns. chip_config->setuptime = 7,//15,cs    cs 建立时间  看上图 7*9.6ns=67.2ns chip_config->holdtime = 7,//15, cs 
两个STM32之间进行SPI通信
采用双向通信模式,主机mosi—从机的mosi 主机从机配置一致。从机的片选引脚要设置成浮空输入。主机片选引脚设置成推挽输出 主机配置 void MB90092_CS_Configuration(void) {    GPIO_InitTypeDef MB90092_CS_GPIO_InitStructure;      /* GPIOC Periph clock enable */
STM32如何配置使用SPI通信
SPI是一种高速的,全双工,同步的通信总线,原理和使用简单,占用引脚资源少,是一种常用的通信方式。 STM32通常有2~3个SPI接口 根据STM32手册的使用方法: 1. Enable peripheral clock  2. Enable SCK, MOSI, MISO and NSS GPIO clocks  3. Peripherals alternate function:  Con
两块STM32之间的SPI通信
本文以STM32F103为例展示两块STM32之间的SPI通信。废话少说,直接奉上我写的SPI库吧。 首先是 SPI.h #ifndef _SPI_H_ #define  _SPI_H_ #include "stm32f10x.h" void RCC_Configuration(void); void GPIO_Configuration(void); void