From 5c0ba6ef42328f4a54c5198c0c66181c594bb8c5 Mon Sep 17 00:00:00 2001
From: stark1898y <1658608470@qq.com>
Date: Mon, 9 Dec 2024 11:41:44 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E6=B5=8B=E8=AF=95=E5=8F=AF?=
=?UTF-8?q?=E4=BB=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.cproject | 4 +-
.settings/language.settings.xml | 2 +-
.vscode/settings.json | 5 +-
APP/peripheral_main.c | 128 +++++++++++++-------------------
BSP/inc/bsp_beep_led_emv.h | 108 +++++++++++++++++++++++++++
BSP/inc/bsp_key.h | 17 +++++
BSP/src/bsp_adc.c | 8 +-
BSP/src/bsp_beep_led_emv.c | 80 ++++++++++++++++++++
BSP/src/bsp_key.c | 14 ++++
HAL/include/LED.h | 2 +-
StdPeriphDriver/CH59x_uart1.c | 4 +-
11 files changed, 286 insertions(+), 86 deletions(-)
create mode 100644 BSP/inc/bsp_beep_led_emv.h
create mode 100644 BSP/inc/bsp_key.h
create mode 100644 BSP/src/bsp_beep_led_emv.c
create mode 100644 BSP/src/bsp_key.c
diff --git a/.cproject b/.cproject
index bb0cd81..a503049 100644
--- a/.cproject
+++ b/.cproject
@@ -67,7 +67,7 @@
@@ -100,7 +100,7 @@
-
+
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 55437e6..8e15ccf 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 5d8d3b8..af9c1da 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,5 +1,8 @@
{
"files.associations": {
- "bsp_adc.h": "c"
+ "bsp_adc.h": "c",
+ "bsp_beep.h": "c",
+ "bsp_key.h": "c",
+ "bsp_beep_led_emv.h": "c"
}
}
diff --git a/APP/peripheral_main.c b/APP/peripheral_main.c
index 8c8ebc8..2828032 100644
--- a/APP/peripheral_main.c
+++ b/APP/peripheral_main.c
@@ -17,9 +17,12 @@
#include "gattprofile.h"
#include "peripheral.h"
-
#include "bsp_adc.h"
+#include "bsp_key.h"
+
+#include "bsp_beep_led_emv.h"
+
/*********************************************************************
* GLOBAL TYPEDEFS
*/
@@ -42,64 +45,67 @@ __attribute__((noinline)) void Main_Circulation()
while (1)
{
TMOS_SystemProcess();
- if (GPIOB_ReadPortPin(GPIO_Pin_14) == 0)
+ if (GPIOB_ReadPortPin(GPIO_Pin_15) == 0)
{
// 12V_EN
- GPIOA_SetBits(GPIO_Pin_13);
- GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA);
- PRINT("12V_EN ON\n");
+ BOOST_EN;
+ PRINT("BOOST_EN\n");
- // LED
- GPIOA_SetBits(GPIO_Pin_4);
- GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA);
+ // LED_R
+ LED_R_ON;
DelayMs(1000);
- PRINT("LED ON\n");
+ PRINT("LED_R_ON\n");
- GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15);
- GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_PD);
+ LED_ALL_OFF_DEINIT;
DelayMs(1000);
- PRINT("LED OFF\n");
+ PRINT("LED_ALL_OFF_DEINIT\n");
- GPIOA_SetBits(GPIO_Pin_5);
- GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeOut_PP_5mA);
+ // LED_G
+ LED_G_ON;
DelayMs(1000);
- PRINT("LED ON\n");
+ PRINT("LED_G_ON\n");
- GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15);
- GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_PD);
+ LED_ALL_OFF_DEINIT;
DelayMs(1000);
- PRINT("LED OFF\n");
+ PRINT("LED_ALL_OFF_DEINIT\n");
- GPIOA_SetBits(GPIO_Pin_15);
- GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeOut_PP_5mA);
+ // LED_Y
+ LED_Y_ON;
DelayMs(1000);
- PRINT("LED ON\n");
+ PRINT("LED_Y_ON\n");
- GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15);
- GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_PD);
+ LED_ALL_OFF_DEINIT;
DelayMs(1000);
- PRINT("LED OFF\n");
+ PRINT("LED_ALL_OFF_DEINIT\n");
- DelayMs(100);
- PRINT("DelayMs 700\n");
+ PRINT("Delay 6s\n");
+
+ // EMV_CHARGE
+ EMV_CHARGE_EN;
+ PRINT("EMV_CHARGE_EN\n");
+
+ DelayMs(500);
+
+ EMV_CHARGE_OFF_DEINIT;
+ PRINT("EMV_CHARGE_OFF_DEINIT 1s\n");
// 12V_EN
- GPIOA_ResetBits(GPIO_Pin_13);
- GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA);
+ GPIOB_ResetBits(GPIO_Pin_14);
+ GPIOB_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA);
PRINT("12V_EN OFF\n");
- DelayMs(1000 * 5);
+ DelayMs(3000);
// EMV_CTRL
- GPIOB_SetBits(GPIO_Pin_13);
- GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA);
- PRINT("EMV_CTRL ON\n");
+ EMV_ON;
+ PRINT("EMV_ON\n");
DelayMs(100);
- // EMV_CTRL
- GPIOB_ResetBits(GPIO_Pin_13);
- GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_PD);
- PRINT("EMV_CTRL OFF\n");
+ BOOST_OFF_DEINIT;
+ BEEP_OFF_DEINIT;
+ LED_ALL_OFF_DEINIT;
+ EMV_CHARGE_OFF_DEINIT;
+ EMV_OFF_DEINIT;
}
}
}
@@ -123,50 +129,22 @@ int main(void)
GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
#endif
#ifdef DEBUG
- GPIOB_SetBits(bTXD0);
- GPIOB_ModeCfg(bTXD0, GPIO_ModeOut_PP_5mA);
- UART0_DefInit();
+ GPIOA_SetBits(bTXD1);
+ GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);
+ UART1_DefInit();
PRINT("Start @ChipID=%02X\n", R8_CHIP_ID);
#endif
- // 12V_EN
- GPIOA_ResetBits(GPIO_Pin_13);
- GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA);
-
- // EMV_CTRL
- GPIOB_SetBits(GPIO_Pin_13);
- GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA);
- PRINT("EMV_CTRL ON\n");
- DelayMs(100);
-
- GPIOB_ResetBits(GPIO_Pin_13);
- PRINT("EMV_CTRL OFF\n");
-
- // EMV_CTRL
- GPIOB_ResetBits(GPIO_Pin_13);
- GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_PD);
-
- // LED
- GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15);
- GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_PD);
-
- // KEY
- GPIOB_SetBits(GPIO_Pin_14);
- // 由外部上拉电阻了
- GPIOB_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
-
- // ADC_VBAT
- // GPIOAGPPCfg(ENABLE, RB_PIN_PA4_15_DIS);
- // R16_PIN_ANALOG_IE != RB_PIN_PA4_15_DIS;
- R32_PIN_CONFIG2 |= (1U << 14);
-
- // R32_PIN_CONFIG2
-
- // GPIOA_ResetBits(GPIO_Pin_1);
- // GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
-
DelayMs(1000 * 3);
+ BOOST_OFF_DEINIT;
+ BEEP_OFF_DEINIT;
+ LED_ALL_OFF_DEINIT;
+ EMV_CHARGE_OFF_DEINIT;
+ EMV_OFF_DEINIT;
+
+ BSP_KEY_Init();
+
BSP_ADC_Init();
PRINT("%s\n", VER_LIB);
diff --git a/BSP/inc/bsp_beep_led_emv.h b/BSP/inc/bsp_beep_led_emv.h
new file mode 100644
index 0000000..dd30e43
--- /dev/null
+++ b/BSP/inc/bsp_beep_led_emv.h
@@ -0,0 +1,108 @@
+/*
+ * @Author : stark1898y 1658608470@qq.com
+ * @Date : 2024-12-09 09:50:56
+ * @LastEditors : stark1898y 1658608470@qq.com
+ * @LastEditTime : 2024-12-09 11:27:01
+ * @FilePath : \BLE_TYQ_CH592F\BSP\inc\bsp_beep_led_emv.h
+ * @Description :
+ *
+ * Copyright (c) 2024 by yzy, All Rights Reserved.
+ */
+#ifndef __BSP_BEEP_LED_EMV_H__
+#define __BSP_BEEP_LED_EMV_H__
+
+#include "CH59x_common.h"
+
+
+/**********************BOOST************************ */
+#define BOOST_EN \
+ do \
+ { \
+ GPIOB_SetBits(GPIO_Pin_14); \
+ GPIOB_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA); \
+ } while (0);
+
+#define BOOST_OFF_DEINIT \
+ do \
+ { \
+ GPIOB_ResetBits(GPIO_Pin_14); \
+ GPIOB_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_PD); \
+ } while (0);
+
+/***********************BEEP************************ */
+#define BEEP_ON \
+ do \
+ { \
+ GPIOA_SetBits(GPIO_Pin_14); \
+ GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA);\
+ } while (0);
+
+#define BEEP_OFF_DEINIT \
+ do \
+ { \
+ GPIOA_ResetBits(GPIO_Pin_14); \
+ GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating); \
+ } while (0);
+
+/***********************LED************************ */
+/**********LED_R**************/
+#define LED_R_ON \
+ do \
+ { \
+ GPIOA_SetBits(GPIO_Pin_4); \
+ GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA); \
+ } while (0);
+/**********LED_G**************/
+#define LED_G_ON \
+ do \
+ { \
+ GPIOA_SetBits(GPIO_Pin_5); \
+ GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeOut_PP_5mA); \
+ } while (0);
+/**********LED_Y**************/
+#define LED_Y_ON \
+ do \
+ { \
+ GPIOA_SetBits(GPIO_Pin_15); \
+ GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeOut_PP_5mA); \
+ } while (0);
+
+#define LED_ALL_OFF_DEINIT \
+ do \
+ { \
+ GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15); \
+ GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_PD); \
+ } while (0);
+
+/***********************EMV************************ */
+// EMV_CHARGE
+#define EMV_CHARGE_EN \
+ do \
+ { \
+ GPIOB_SetBits(GPIO_Pin_13); \
+ GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA); \
+ } while (0);
+
+#define EMV_CHARGE_OFF_DEINIT \
+ do \
+ { \
+ GPIOB_ResetBits(GPIO_Pin_13); \
+ GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_Floating); \
+ } while (0);
+
+// EMV_EN
+#define EMV_ON \
+ do \
+ { \
+ GPIOB_SetBits(GPIO_Pin_12); \
+ GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeOut_PP_5mA);\
+ } while (0);
+
+#define EMV_OFF_DEINIT \
+ do \
+ { \
+ GPIOB_ResetBits(GPIO_Pin_12); \
+ GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_Floating); \
+ } while (0);
+
+#endif // !__BSP_BEEP_LED_EMV_H__
diff --git a/BSP/inc/bsp_key.h b/BSP/inc/bsp_key.h
new file mode 100644
index 0000000..c739711
--- /dev/null
+++ b/BSP/inc/bsp_key.h
@@ -0,0 +1,17 @@
+#ifndef __BSP_KEY_H__
+#define __BSP_KEY_H__
+
+
+#include "CH59x_common.h"
+
+
+
+
+
+
+void BSP_KEY_Init(void);
+
+
+
+
+#endif // !__BSP_KEY_H__
diff --git a/BSP/src/bsp_adc.c b/BSP/src/bsp_adc.c
index 76d74de..943f1d2 100644
--- a/BSP/src/bsp_adc.c
+++ b/BSP/src/bsp_adc.c
@@ -61,9 +61,9 @@ void BSP_ADC_Init(void)
printf("AverageCountBat = %d\n", CountBat);
#endif
+ R32_PIN_CONFIG2 |= (1U << 13);
/* 鍗曢氶亾閲囨牱锛氶夋嫨adc閫氶亾3鍋氶噰鏍凤紝瀵瑰簲 PA13寮曡剼锛 甯︽暟鎹牎鍑嗗姛鑳 */
- GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
- DelayMs(300);
+ GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_Floating);
// 6dB(2鍊) (ADC/4096+0.5)*Vref 1.5*Vref 0.525V锝1.575V 0.6V锝1.5V
ADC_ExtSingleChSampInit(SampleFreq_3_2, ADC_PGA_0);
@@ -73,8 +73,8 @@ void BSP_ADC_Init(void)
DelayMs(300);
- printf("PA14:::::\n");
- ADC_ChannelCfg(4);
+ printf("PA13:::::\n");
+ ADC_ChannelCfg(3);
for (i = 0; i < 20; i++)
{
diff --git a/BSP/src/bsp_beep_led_emv.c b/BSP/src/bsp_beep_led_emv.c
new file mode 100644
index 0000000..016fa21
--- /dev/null
+++ b/BSP/src/bsp_beep_led_emv.c
@@ -0,0 +1,80 @@
+#include "bsp_beep_led_emv.h"
+
+#if 0
+void BSP_BOOST_Init(void)
+{
+
+}
+
+void BSP_BOOST_DeInit(void)
+{
+ // 12V_EN
+ GPIOB_ResetBits(GPIO_Pin_14);
+ GPIOB_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_PD);
+}
+
+
+void BSP_BEEP_Init(void)
+{
+ // BEEP
+ GPIOA_ResetBits(GPIO_Pin_14);
+ GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA);
+}
+
+void BSP_BEEP_DeInit(void)
+{
+ // BEEP
+ GPIOA_ResetBits(GPIO_Pin_14);
+ // 鏈夋暟瀛楁櫠浣撶鐨勪笅鎷
+ GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
+}
+
+void BSP_LED_Init(void)
+{
+ // LED_R
+ GPIOA_ResetBits(GPIO_Pin_4);
+ GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA);
+
+ // LED_G
+ GPIOA_ResetBits(GPIO_Pin_5);
+ GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeOut_PP_5mA);
+
+ // LED_Y
+ GPIOA_ResetBits(GPIO_Pin_15);
+ GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeOut_PP_5mA);
+}
+
+void BEP_LED_DeInit(void)
+{
+ // LED
+ GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15);
+ // 鏈夋暟瀛楁櫠浣撶鐨勪笅鎷
+ GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_Floating);
+}
+
+void BSP_EMV_Init(void)
+{
+ // EMV_CHARGE
+ GPIOB_ResetBits(GPIO_Pin_13);
+ GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA);
+
+ // EMV_EN
+ GPIOB_ResetBits(GPIO_Pin_12);
+ GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeOut_PP_5mA);
+}
+
+void BSP_EMV_DeInit(void)
+{
+ // EMV_CHARGE
+ GPIOB_ResetBits(GPIO_Pin_13);
+ // 鏈夋暟瀛楁櫠浣撶鐨勪笅鎷
+ GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_Floating);
+
+ // EMV_EN
+ GPIOB_ResetBits(GPIO_Pin_12);
+ // 鏈夊閮ㄤ笅鎷夌數闃
+ GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_Floating);
+}
+#endif
+
+
diff --git a/BSP/src/bsp_key.c b/BSP/src/bsp_key.c
new file mode 100644
index 0000000..1d62190
--- /dev/null
+++ b/BSP/src/bsp_key.c
@@ -0,0 +1,14 @@
+#include "bsp_key.h"
+
+
+
+
+
+
+void BSP_KEY_Init(void)
+{
+ // KEY
+ GPIOB_SetBits(GPIO_Pin_15);
+ // 鐢卞閮ㄤ笂鎷夌數闃讳簡
+ GPIOB_ModeCfg(GPIO_Pin_15, GPIO_ModeIN_Floating);
+}
diff --git a/HAL/include/LED.h b/HAL/include/LED.h
index 96af1c6..e09087a 100644
--- a/HAL/include/LED.h
+++ b/HAL/include/LED.h
@@ -6,7 +6,7 @@
* Description :
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
- * Attention: This software (modified or not) and binary are used for
+ * Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
diff --git a/StdPeriphDriver/CH59x_uart1.c b/StdPeriphDriver/CH59x_uart1.c
index 3580a8b..60ccd47 100644
--- a/StdPeriphDriver/CH59x_uart1.c
+++ b/StdPeriphDriver/CH59x_uart1.c
@@ -6,7 +6,7 @@
* Description
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
- * Attention: This software (modified or not) and binary are used for
+ * Attention: This software (modified or not) and binary are used for
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
*******************************************************************************/
@@ -23,7 +23,7 @@
*/
void UART1_DefInit(void)
{
- UART1_BaudRateCfg(115200);
+ UART1_BaudRateCfg(921600);
R8_UART1_FCR = (2 << 6) | RB_FCR_TX_FIFO_CLR | RB_FCR_RX_FIFO_CLR | RB_FCR_FIFO_EN; // FIFO打开,触发点4字节
R8_UART1_LCR = RB_LCR_WORD_SZ;
R8_UART1_IER = RB_IER_TXD_EN;