MG32F10x Standard Peripherals Firmware Library
SPIS1_Slave_Interrupt example
  *************** (C) COPYRIGHT 2020 - 2023 megawin Technology ***************
  * @file    SPI/SPIS1_Slave_Interrupt/readme.txt 
  * @author  megawin Application Team
  * @version V0.1.10
  * @date    05-January-2023
  * @brief   Description of the SPI SPIS1_Slave_Interrupt example.
  ******************************************************************************
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, MEGAWIN SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
  * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM
  * THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  ******************************************************************************
例程描述

本例程与QSPI_Master_Interrupt例程演示如何以中断的方式完成SPI主机和SPI从机之间的通信。

本例程系统时钟工作在96Mhz,通过PLL配置产生。PLL时钟源是外部8Mhz晶振。APB1的分频比是1,APB2的分频比是1。

  • 硬件描述

要使用此例程,您需要两块MG32开发板(让我们称之为开发板A和开发板B),然后连接两块开发板的SPI接口和GND。
另外需要将两个开发板的UART1连接到PC,以实现与开发板的交互。
开发板A需加载QSPI_Master_Interrupt程序,开发板B需加载SPIS1_Slave_Interrupt程序。

*------------------------------------------------------------------------------*
|                BoardA                                 BoardB                 |
|         ____________________                   ____________________          |
|        |                    |                 |                    |         |
|        |     __________     |                 |     __________     |         |
|        |    |          |____|_______NSS_______|____|          |    |         |
|        |    |SPI Master|____|_______SCK_______|____|SPI Slave |    |         |
|        |    |  Device  |____|_______MOSI______|____|  Device  |    |         |
|        |    |__________|____|_______MISO______|____|__________|    |         |
|        |                    |                 |                    |         |
|        |                    |                 |                    |         |
|        |             GND O--|-----------------|--O GND             |         |
|        |                    |                 |                    |         |
|        |                    |                 |                    |         |
|        | UART1              |                 |              UART1 |         |
|        |____________________|                 |____________________|         |
|                                                                              |
*------------------------------------------------------------------------------*
  • 软件描述

在QSPI_Master_Interrupt程序中,QSPI外设被配置为SPI主机,使用中断发送和接收数据,通信速率被配置为 1 Mbit/s。
在SPIS1_Slave_Interrupt程序中,SPIS1外设被配置为SPI从机,使用中断发送和接收数据。

当两个开发板上电运行后,都会通过串口打印相关信息,等待串口输入才会继续运行。
首先,向开发板B(SPI从机)的串口输入任意字符,令开发板B继续运行。
然后,再向开发板A(SPI主机)的串口输入任意字符,令开发板A开始发起传输。
当传输完成后,开发板A和开发板B都会打印出它们各自接收到的数据。

目录内容
  • SPI/SPIS1_Slave_Interrupt/SPIS1_Slave_Interrupt.uvprojx MDK5工程文件
  • SPI/SPIS1_Slave_Interrupt/SPIS1_Slave_Interrupt.uvoptx MDK5工程配置文件
  • SPI/SPIS1_Slave_Interrupt/JLinkSettings.ini Jlink配置文件
  • SPI/SPIS1_Slave_Interrupt/main.c 主程序
硬件和软件环境
  • 硬件平台搭建
    • HSE 连接外部8MHz晶振
    • 需要两块开发板
    • 两块开发板都需要将其各自的UART1连接到PC
    • 两块开发板之间的连接如下:
      • 开发板A的 PA4 (QSPI_NSS0) 管脚连接到 开发板B的 PA4 (SPIS1_NSS)
      • 开发板A的 PA5 (QSPI_SCK) 管脚连接到 开发板B的 PA5 (SPIS1_SCK)
      • 开发板A的 PA6 (QSPI_MI_IO1) 管脚连接到 开发板B的 PA6 (SPIS1_SO)
      • 开发板A的 PA7 (QSPI_MO_IO0) 管脚连接到 开发板B的 PA7 (SPIS1_SI)
如何使用?

为了使程序工作,您必须执行以下操作 :

  • 使用 MDK5 打开此例程文件夹中的 SPIS1_Slave_Interrupt.uvprojx 工程
  • 重新编译该工程并下载到目标存储器中
  • 运行此例程

    © COPYRIGHT 2020 - 2023 megawin Technology