LISA SPI MASTER_SLAVE 发送示例

功能说明

演示如何使用 lisa_spi_transfer() API 传输数据。

硬件连接

  • PA15: SPI0 CLK(时钟)

  • PA14: SPI0 MOSI(主出从入)

  • PA13:SPI0 MISO (主入从出)

  • PA12: SPI0 CS (片选

  • PA25: SPI1 CLK(时钟)

  • PA24: SPI1 MOSI(主出从入)

  • PA23:SPI1 MISO (主入从出)

  • PA22: SPI1 CS (片选

连接到 PC 串口工具,配置为 921600, 8N1, 无流控

API 说明

lisa_spi_transfer 是一个非阻塞的传输接口:

  • 立即返回(不阻塞)

  • 可以注册回调函数来获取传输完成的状态

示例步骤

1. 获取 SPI 设备
2. 创建传输完成的信号量
3. 配置引脚
4. 配置 SPI
5. 传输数据
   - 调用 lisa_spi_transfer()
   - 如果成功,会收到传输完成的信号量

编译

重要提示:在编译前,请先确认您使用的开发板型号。SDK 目前支持以下开发板:

  • arcs_evb - ARCS EVB 评估板

  • arcs_mini - ARCS Mini 开发板

根据您的开发板型号,选择对应的编译命令:

在示例目录下执行编译:

# 使用 arcs_evb 开发板
./build.sh -C -DBOARD=arcs_evb

# 或使用 arcs_mini 开发板
./build.sh -C -DBOARD=arcs_mini

Note

如果在 SDK 根目录执行,需要指定示例路径:

# 使用 arcs_evb 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_evb

# 或使用 arcs_mini 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_mini

Note

确保已安装对应的工具链。

预期输出

终端输出:

=== LISA SPI master-slave thread demo ===
SPI1 transfer completed
SPI0 transfer completed
SPI1 Received: 1 2 3 4 5 6 7 8
SPI0 Received: 8 7 6 5 4 3 2 1
...

使用说明

  1. 编译并运行程序

  2. 通过 PC 串口可以看到发送完成的打印信息

核心 API

API

说明

lisa_spi_transfer()

spi传输数据(非阻塞)

返回值说明

  • 0: 成功接收到数据

  • 其他负数: 错误码

使用场景

  • SPI master slave 发送并接收数据