第8章SPI通信基础_第1页
第8章SPI通信基础_第2页
第8章SPI通信基础_第3页
第8章SPI通信基础_第4页
第8章SPI通信基础_第5页
已阅读5页,还剩16页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SPI通信SPI(SerialPeripheralInterface)是由Motorola公司开发的一种通用数据总线四根通信线:SCK(SerialClock)、MOSI(MasterOutputSlaveInput)、MISO(MasterInputSlaveOutput)、SS(SlaveSelect)同步,全双工支持总线挂载多设备(一主多从)硬件电路所有SPI设备的SCK、MOSI、MISO分别连在一起主机另外引出多条SS控制线,分别接到各从机的SS引脚输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入MISO(MasterInputSlaveOutput)-主收从发MOSI(MasterOutputSlaveInput)-主发从收SCK(SerialClock)-串行时钟SS(SlaveSelect)-从机选择移位示意图SPI数据收发是双向的、同时的每发送一个比特位必然会接收一个比特位SPI时序基本单元起始条件:SS从高电平切换到低电平终止条件:SS从低电平切换到高电平SSSSSPI的4种模式交换一个字节(模式0)极性CPOL=0:空闲状态时,SCK为低电平相位CPHA=0:SCK第一个边沿采集数据,第二个边沿发送数据SS……SCK……MOSI……B7B6B0MISO……B7B6B0SPI的4种模式交换一个字节(模式1)极性CPOL=0:空闲状态时,SCK为低电平相位CPHA=1:SCK第一个边沿发送数据,第二个边沿采集数据SS……SCK……B7B6B0……MOSIB7B6B0……MISOSPI的4种模式交换一个字节(模式2)极性CPOL=1:空闲状态时,SCK为高电平相位CPHA=0:SCK第一个边沿采集数据,第二个边沿发送数据SS……SCK……MOSI……B7B6B0MISO……B7B6B0SPI的4种模式交换一个字节(模式3)极性CPOL=1:空闲状态时,SCK为高电平相位CPHA=1:SCK第一个边沿发送数据,第二个边沿采集数据SS……SCK……B7B6B0……MOSIB7B6B0……MISOSPI的传输顺序LSBFirst最低有效位先行MSBFirst最高有效位先行SPI外设简介STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时钟生成、数据收发等功能,减轻CPU的负担可配置8位/16位数据帧、高位先行/低位先行时钟频率:fPCLK/(2,4,8,16,32,64,128,256)支持多主机模型、主或从操作可精简为半双工/单工通信支持DMA兼容I2S协议STM32F103C8T6硬件SPI资源:SPI1、SPI2SPI框图TDRRDRSPI的HAL库函数函数名功能描述HAL_SPI_Init()SPI初始化,配置SPI接口参数HAL_SPI_MspInit()SPI的MSP初始化弱函数,重新实现时一般用于SPI接口引脚GPIO初始化和中断设置HAL_SPI_GetState()返回SPI接口当前状态,返回值是枚举类型HAL_SPI_StateTypeDefHAL_SPI_GetError()返回SPI接口最后的错误码,错误码有一组宏定义HAL_SPI_Transmit()阻塞式发送一个缓存区的数据HAL_SPI_Receive()阻塞式接收指定长度的数据到缓存区HAL_SPI_TransmitReceive()阻塞式同时发送和接收一定长度的数据SPI的HAL库函数函数名函数功能中断事件类型对应的回调函数HAL_SPI_Transmit_IT()中断方式发送一个缓存区的数据SPI_IT_TXEHAL_SPI_TxCpltCallback()HAL_SPI_Receive_IT()中断方式接收指定长度的数据到缓存区SPI_IT_RXNEHAL_SPI_RxCpltCallback()HAL_SPI_TransmitRecei

ve_IT()中断方式发送和接收一定长度的数据SPI_IT_TXE和SPI_IT_RXNEHAL_SPI_TxRxCpltCallback()前3个中断方式传输函数前3个中断模式传输函数

都可能产生SPI_IT_ERR中断事件SPI_IT_ERRHAL_SPI_ErrorCallback()HAL_SPI_IRQHandler()SPI中断ISR函数里调用的

通用处理函数------HAL_SPI_Abort()取消非阻塞式数据传输,本函数以阻塞模式运行------HAL_SPI_Abort_IT()取消非阻塞式数据传输,本函数以中断模式运行---HAL_SPI_AbortCpltCallback()SPI的HAL库函数DMA方式功能函数函数功能DMA流中断事件对应的回调函数HAL_SPI_Transmit

_DMA()DMA方式发送数据DMA传输完成HAL_SPI_TxCpltCallback()DMA传输半完成HAL_SPI_TxHalfCpltCallback()HAL_SPI_Receive

_DMA()DMA方式接收数据DMA传输完成HAL_SPI_RxCpltCallback()DMA传输半完成HAL_SPI_RxHalfCpltCallback()HAL_SPI_Transmit

Receive_DMA()DMA方式发送/

接收数据DMA传输完成HAL_SPI_TxRxCpltCallback()DMA传输半完成HAL_SPI_TxRxHalfCpltCallback()前3个DMA方式传输

函数前3个DMA方式传输函数都可能产生DMA传输错误中断事件DMA传输错误HAL_SPI_ErrorCallback()SPI通信示例创建项目Demo8_1_Flash,根据下图连接电路,为W25Q64编写常用操作的驱动程序,并且测试轮询方式读写W25Q64。示例功能与操作流程如下:使能SPI1接口并移植W25Q64常用功能的驱动程序。编写程序测试读取芯片ID,FLASH擦除,写入数据和读出数据等操作。W25Q64简介W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论