这里简单贴出来之前的部分嵌入式系统 SPI 通信的高级封装库实现,这个库提供了清晰的 API 接口、设备管理、错误处理和中断支持等特性,适用于大多数 ARM Cortex-M 系列微控制器。
/**
* @file spi_master.h
* @brief 嵌入式SPI总线高级封装库
* @author start_up_go
* @date 2025-06-29
*/
#ifndef SPI_MASTER_H
#define SPI_MASTER_H
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
/** SPI总线设备句柄类型 */
typedef struct SpiDevice* SpiHandle;
/** SPI通信模式 */
typedef enum {
SPI_MODE0 = 0, // CPOL=0, CPHA=0
SPI_MODE1, // CPOL=0, CPHA=1
SPI_MODE2, // CPOL=1, CPHA=0
SPI_MODE3 // CPOL=1, CPHA=1
} SpiMode;
/** SPI数据位宽 */
typedef enum {
SPI_BITS_8 = 8,
SPI_BITS_16 = 16,
SPI_BITS_32 = 32
} SpiBits;
/** SPI传输速率 */
typedef enum {
SPI_SPEED_1MHz = 1000000,
SPI_SPEED_2MHz = 2000000,