/**
  ******************************************************************************
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * Copyright (C) 2021 Shanghai Eastsoft Microelectronics Co., Ltd. ALL rights reserved.
  *******************************************************************************
  */

<--------------------------------------------------------------------------------
Version history:
--------------------------------------------------------------------------------->
2021-3-16       V1.0.0      AE TEAM

<--------------------------------------------------------------------------------
Demo introduction:
--------------------------------------------------------------------------------->
本示例功能：使用USART，自定义通信协议，进行Flash空间数据的读取。

<--------------------------------------------------------------------------------
测试环境:
--------------------------------------------------------------------------------->
测试用板；
ES-PDS-ES32H040xLQ-V1.0

辅助工具：
多功能接口转换工具ES-DAPLink(ES-Bridge)

辅助软件：
ES-Bridge上位机软件

<--------------------------------------------------------------------------------
测试步骤：
--------------------------------------------------------------------------------->
1) 编译工程，编译通过后将程序下载到目标芯片；
2) 将程序配置的TX/RX对应的引脚分别连接ES-DAPLink(ES-Bridge)的RX/TX；
3) ES-DAPLink(ES-Bridge)通过USB线缆连接PC，打开上位机软件，“设备操作”选项里选择“打开”；
4) 上位机切换到UART标签页，按照程序同步配置波特率等参数（波特率9600-1位停止位-8位数据位-偶校验-正常模式），打开串口；
5) 在线调试，打开Keil的Memory Window，运行程序；
6) 上位机发送指令“55 AA __ __ __ __ __ __ 66 BB”，第3字节为指令长度，第4-7字节为Flash地址，第8字节为数据长度，例如发送"55 AA 0A 10 00 00 00 0A 66 BB"；
7) USART返回指定地址的数据，并打印在上位机接收框，数据为第9字节到倒数第3字节。

<--------------------------------------------------------------------------------
注意：
--------------------------------------------------------------------------------->
1) 该示例自定义协议，上位机发送的指令必须按照规定格式填充；
2) 为避免程序错乱，指令长度、数据地址、数据长度均不应采用“55”、“AA”、“66”、“BB”；
3) 测试板与ES-DAPLink(ES-Bridge)需共GND。

<--------------------------------------------------------------------------------
System clock:
--------------------------------------------------------------------------------->
Default internal HRC 24MHz

<--------------------------------------------------------------------------------
Pin connection: 
--------------------------------------------------------------------------------->
USART0_TX ---- PA2
USART0_RX ---- PA3
