﻿1/**
  ******************************************************************************
  * 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) Shanghai Eastsoft Microelectronics Co., Ltd. ALL rights reserved.
  *******************************************************************************
  */

<--------------------------------------------------------------------------------
Version history:
--------------------------------------------------------------------------------->
2024-03-12	V1.0.0	AE TEAM

<--------------------------------------------------------------------------------
Demo introduction:
--------------------------------------------------------------------------------->
1. Used on the board of ES-PDS-ES32F361x:
2. UART configure: 115200, 8, 1
3. Create two tasks: 1) Pend task: After the button is pressed upward, attempt 
                                  to obtain a semphore.
                              2) Post task: After the middle button is pressed, release a 
                                  semaphore.
<--------------------------------------------------------------------------------
System clock:
--------------------------------------------------------------------------------->
Internal HRC[4MHz] PLL to 72MHz.

<--------------------------------------------------------------------------------
Pin connection: 
--------------------------------------------------------------------------------->
KEY_TOP    ----  (PB5, GPIO_PIN_1)
KEY_BOTTOM ----  (PB7, GPIO_PIN_1)     
KEY_LEFT   ----  (PB4, GPIO_PIN_1) 
KEY_RIGHT  ----  (PB6, GPIO_PIN_1) 
KEY_CENTER ----  (PD2, GPIO_PIN_1) 

UART_TX    ----  (PB10, GPIO_FUNC_3)
UART_RX    ----  (PB11, GPIO_FUNC_3)