基于硬件 SPI 的数据抽象实例(附代码)

💡 原文中文,约10600字,阅读约需26分钟。
📝

内容提要

SPI(Serial Peripheral Interface)是一种串行外围接口,常用于嵌入式开发中的外设通信总线。SPI总线抽象的外部接口包括spi_send_then_recv、spi_send_then_send、spi_send_recv和spi_send等函数。spi_send_then_recv函数用于发送完一帧数据后再接收一帧数据,spi_send_then_send函数用于发送完一帧数据后再发送一帧数据,spi_send_recv函数用于同时发送和接收数据,spi_send函数用于只发送数据。SPI总线抽象的底层实现需要初始化spi总线和相关硬件配置。文章还介绍了如何使用SPI抽象驱动25aa256 EEPROM设备。

🎯

关键要点

  • SPI(串行外围接口)是一种常用于嵌入式开发的外设通信总线。
  • SPI总线的主要目的是将SPI总线与SPI设备分离,快速使用新的硬件SPI或模拟SPI。
  • SPI总线抽象的外部接口包括spi_send_then_recv、spi_send_then_send、spi_send_recv和spi_send等函数。
  • spi_send_then_recv函数用于发送完一帧数据后再接收一帧数据。
  • spi_send_then_send函数用于发送完一帧数据后再发送一帧数据。
  • spi_send_recv函数用于同时发送和接收数据。
  • spi_send函数用于只发送数据,无需接收返回值。
  • SPI总线抽象的底层实现需要初始化SPI总线和相关硬件配置。
  • 结构体spi_dev_device用于驱动SPI外设,包含片选和总线相关部分。
  • 结构体spi_bus_device用于底层硬件相关的SPI总线实现。
  • spi_bus_xfer函数用于SPI总线的收发操作,包含数据发送和接收的逻辑。
  • 以STM32为例,SPI总线的底层实现包括数据收发和片选控制。
  • 使用SPI抽象驱动25aa256 EEPROM设备的步骤包括初始化设备和操作读写。
  • 驱动一个设备相对简单,难点在于应用层的实现。
  • 通过结构体和函数指针实现SPI总线的抽象分层,便于移植和扩展。
🏷️

标签

➡️

继续阅读