CIU32 SPI — SPI1 从机中断

CIU32 CIU32F003_STDLib V1.0.3 SPI SPI1 从机中断 示例教学

SPI — SPI1 从机中断

固件库: CIU32F003_STDLib V1.0.3
芯片: CIU32
源文件: CIU32/CIU32F003_STDLib_V1.0.3/Projects/SPI/SPI1_Slave_Interrupt/Source/main.c


功能简介

本示例演示 SPI 总线通信。SPI 是高速同步串行接口,常用于连接 Flash、LCD、传感器等外设。

硬件准备

  • 需要主机和从机两块板子,或使用回环连接(MOSI→MISO)

完整代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "main.h"

int main(void)
{
    /* ϵͳʱ */
    system_clock_config();
  
    /* GPIOʼ */
    gpio_init();
    
    /* SPIʼΪģʽ */
    spi1_init();
    
    /* NVICʼ */
    nvic_init();
    
    /* ȴ */
    while(g_send_count < 8);
    
    /* ȴ */
    while(g_recv_count < 8);
    
    while(1)
    {
    }
}

代码讲解

系统时钟初始化:配置 MCU 的主频和时钟树。不同芯片的时钟配置不同,一般由工具生成。

GPIO 配置:设置引脚为输出/输入模式,选择推挽/开漏输出,配置上拉/下拉。

中断优先级配置:NVIC 设置中断的抢占优先级和子优先级。数字越小优先级越高。

实验现象

  • 主机和从机互相交换数据
  • 数据校验通过则 LED 指示成功

注意事项

  • CPOL 和 CPHA 必须主机从机一致
  • 片选(CS)信号要手动拉低选中从机
  • 时钟频率不能超过从设备的最大速率
世界是你们
使用 Hugo 构建
主题 StackJimmy 设计