﻿/*!
 * @file        readme.txt
 *
 * @brief       This file is routine instruction
 *
 * @version     V1.0.3
 *
 * @date        2022-09-20
 *
 * @attention
 *
 *  Copyright (C) 2020-2022 Geehy Semiconductor
 *
 *  You may not use this file except in compliance with the
 *  GEEHY COPYRIGHT NOTICE (GEEHY SOFTWARE PACKAGE LICENSE).
 *
 *  The program is only for reference, which is distributed in the hope
 *  that it will be useful and instructional for customers to develop
 *  their software. Unless required by applicable law or agreed to in
 *  writing, the program is distributed on an "AS IS" BASIS, WITHOUT
 *  ANY WARRANTY OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the GEEHY SOFTWARE PACKAGE LICENSE for the governing permissions
 *  and limitations under the License.
 */

&par Example Description

This example shows how to use SPI read and send data in polling mode
in one line half duplex mode. In this example, the direction of data flows
is from master to slave, and the master will send data to slave per 1 seconds.
The Slave will output received data in USART1.

           Master      Slave
 CLK       PA5         PA5
 NSS       PA4         PA4
 DATA      PA7         PA6

&par Hardware Description

using USART1(TX:PA9, RX:PA10) to Master.
  - USART1 configured as follow:
  - BaudRate    =   115200
  - Word Length =   USART_WordLength_8b
  - Stop Bit    =   USART_StopBits_1
  - Parity      =   USART_Parity_No
  - Hardware flow control disabled (RTS and CTS signals)
  - Receive and transmit enabled

using SPI1(DATA:PA7, CLK:PA5, NSS: PA4) to Master.
  - Word Length    = 11 bit
  - Clock polarity = Low
  - Clock phase    = odd edge
  - baudrateDiv    = 64 (32MHz / 64 = 512Kbps)
  - firstBit       = MSB
  - Slave select   = Software slave select
  - direction      = 1 line half duplex

using SPI1(DATA:PA6, CLK:PA5, NSS: PA4) to Slave.
  - Word Length    = 11 bit
  - Clock polarity = Low
  - Clock phase    = odd edge
  - baudrateDiv    = 64 (32MHz / 64 = 512Kbps)
  - firstBit       = MSB
  - Slave select   = Hardware slave select
  - direction      = 1 line half duplex

&par Directory contents

  - SPI/SPI_HalfDuplexPolling/slave/Source/apm32f0xx_int.c      Slave  Interrupt handlers
  - SPI/SPI_HalfDuplexPolling/slave/Source/main.c               Slave  Main program
  - SPI/SPI_HalfDuplexPolling/master/Source/apm32f0xx_int.c     Master Interrupt handlers
  - SPI/SPI_HalfDuplexPolling/master/Source/main.c              Master Main program

&par Hardware and Software environment

  - This example runs on APM32F072 MINI Devices.
