From 9fcf973f31282fe985a455029128407e1653a1d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=5F666?=
<13089258+pony-six-hundred-and-sixty-six@user.noreply.gitee.com>
Date: Sun, 1 Dec 2024 14:00:17 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98+1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.cproject | 2 +-
.settings/language.settings.xml | 2 +-
.settings/org.eclipse.core.resources.prefs | 12 +-
APP/bsp_wf5803.c | 132 +++++++++++----------
APP/peripheral_main.c | 35 +++---
HAL/SLEEP.c | 35 +++---
bsp/inc/bsp_ml307r.h | 13 ++
7 files changed, 138 insertions(+), 93 deletions(-)
diff --git a/.cproject b/.cproject
index ec25431..7389f77 100644
--- a/.cproject
+++ b/.cproject
@@ -76,7 +76,7 @@
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index f1457d8..9337699 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
index d677721..dba9b98 100644
--- a/.settings/org.eclipse.core.resources.prefs
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -1,19 +1,25 @@
eclipse.preferences.version=1
-encoding//APP/bsp_wf5803.c=GBK
+encoding//APP/bsp_wf5803.c=UTF-8
encoding//APP/include/bsp_wf5803.h=GBK
encoding//APP/peripheral.c=GBK
-encoding//APP/peripheral_main.c=GBK
+encoding//APP/peripheral_main.c=UTF-8
encoding//HAL/MCU.c=GBK
-encoding//HAL/SLEEP.c=GBK
+encoding//HAL/SLEEP.c=UTF-8
encoding//HAL/include/CONFIG.h=GBK
encoding//LIB/CH58xBLE_LIB.h=GBK
encoding//LIB/CH58xBLE_ROM.h=GBK
encoding//Ld/Link.ld=GBK
encoding//RVMSIS/core_riscv.h=GBK
encoding//Startup/startup_CH585.S=GBK
+encoding//StdPeriphDriver/CH58x_spi0.c=GBK
encoding//StdPeriphDriver/CH58x_sys.c=GBK
encoding//StdPeriphDriver/CH58x_uart1.c=GBK
+encoding//StdPeriphDriver/CH58x_uart3.c=GBK
encoding//StdPeriphDriver/inc/CH585SFR.h=GBK
+encoding//StdPeriphDriver/inc/CH58x_common.h=GBK
+encoding//StdPeriphDriver/inc/CH58x_gpio.h=GBK
+encoding//StdPeriphDriver/inc/CH58x_sys.h=GBK
+encoding//StdPeriphDriver/inc/CH58x_uart.h=GBK
encoding//bsp/inc/bsp_ml307r.h=GBK
encoding//bsp/inc/bsp_uart.h=GBK
encoding//bsp/src/bsp_ml307r.c=GBK
diff --git a/APP/bsp_wf5803.c b/APP/bsp_wf5803.c
index 2b5e239..958a62f 100644
--- a/APP/bsp_wf5803.c
+++ b/APP/bsp_wf5803.c
@@ -1,6 +1,13 @@
#include "bsp_wf5803.h"
#include "CONFIG.h"
+#include "bsp_uart.h"
+#include "log.h"
+
+#undef LOG_ENABLE
+#define LOG_ENABLE 1
+
+
typedef enum
{
kPressIn = 0,
@@ -11,14 +18,14 @@ typedef enum
static tmosTaskID press_task_id = INVALID_TASK_ID;
-#define PRESS_IN_CS_HIGH() GPIOB_SetBits(GPIO_Pin_9)
-#define PRESS_IN_CS_LOW() GPIOB_ResetBits(GPIO_Pin_9)
+#define PRESS_IN_CS_HIGH() GPIOA_SetBits(GPIO_Pin_3)
+#define PRESS_IN_CS_LOW() GPIOA_ResetBits(GPIO_Pin_3)
-#define PRESS_OUT_CS_HIGH() GPIOB_SetBits(GPIO_Pin_4)
-#define PRESS_OUT_CS_LOW() GPIOB_ResetBits(GPIO_Pin_4)
+#define PRESS_OUT_CS_HIGH() GPIOA_SetBits(GPIO_Pin_2)
+#define PRESS_OUT_CS_LOW() GPIOA_ResetBits(GPIO_Pin_2)
-#define PRESS_ATOM_CS_HIGH() GPIOB_SetBits(GPIO_Pin_17)
-#define PRESS_ATOM_CS_LOW() GPIOB_ResetBits(GPIO_Pin_17)
+#define PRESS_ATOM_CS_HIGH() GPIOA_SetBits(GPIO_Pin_12)
+#define PRESS_ATOM_CS_LOW() GPIOA_ResetBits(GPIO_Pin_12)
uint8_t volatile press_done_flag = 0;
@@ -98,7 +105,6 @@ uint8_t WF5803_ReadReg(uint8_t addr, TePressSensorIndex index)
void PRESS_IO_SPI_Init(void)
{
/**
- * CSB: PB17
* SCL: PA13
* SDA: PA14
* SDO: PA15
@@ -106,27 +112,24 @@ void PRESS_IO_SPI_Init(void)
// SDA: MOSI
// SDO: MISO
- // CSB1: PA3
- // GPIOA_SetBits(GPIO_Pin_3);
- // GPIOA_ModeCfg(GPIO_Pin_3, GPIO_ModeOut_PP_5mA);
+// 鏉胯浇
+// CSB1: PA12
+ GPIOA_SetBits(GPIO_Pin_12);
+ GPIOA_ModeCfg(GPIO_Pin_12, GPIO_ModeOut_PP_5mA);
- // CSB2: PB9
- GPIOB_SetBits(GPIO_Pin_9);
- GPIOB_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);
+ // CSB2: PA3
+ GPIOA_SetBits(GPIO_Pin_3);
+ GPIOA_ModeCfg(GPIO_Pin_3, GPIO_ModeOut_PP_5mA);
- // CSB3: PB4
- GPIOB_SetBits(GPIO_Pin_4);
- GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA);
-
- // CSB4: PB17
- GPIOB_SetBits(GPIO_Pin_17);
- GPIOB_ModeCfg(GPIO_Pin_17, GPIO_ModeOut_PP_5mA);
+ // CSB3: PA2
+ GPIOA_SetBits(GPIO_Pin_2);
+ GPIOA_ModeCfg(GPIO_Pin_2, GPIO_ModeOut_PP_5mA);
PRESS_SPI_CsStop(kPressIn);
PRESS_SPI_CsStop(kPressOut);
PRESS_SPI_CsStop(kPressAtom);
- // spi初始化,模式0
+
GPIOA_ModeCfg(GPIO_Pin_13 | GPIO_Pin_14, GPIO_ModeOut_PP_5mA);
GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeIN_PU);
@@ -136,63 +139,68 @@ void PRESS_IO_SPI_Init(void)
void WF5803_Init(void)
{
PRESS_IO_SPI_Init();
- WF5803_WriteReg(0x00, 0x81, kPressIn); // 配置spi为四线模式
- WF5803_WriteReg(0x00, 0x81, kPressOut); // 配置spi为四线模式
- WF5803_WriteReg(0x00, 0x81, kPressAtom); // 配置spi为四线模式
+ WF5803_WriteReg(0x00, 0x81, kPressIn); // 閿熸枻鎷烽敓鏂ゆ嫹spi涓洪敓鏂ゆ嫹閿熸枻鎷锋ā寮
+ WF5803_WriteReg(0x00, 0x81, kPressOut); // 閿熸枻鎷烽敓鏂ゆ嫹spi涓洪敓鏂ゆ嫹閿熸枻鎷锋ā寮
+ WF5803_WriteReg(0x00, 0x81, kPressAtom); // 閿熸枻鎷烽敓鏂ゆ嫹spi涓洪敓鏂ゆ嫹閿熸枻鎷锋ā寮
}
void PRESS_LowerIO_Init(void)
{
- // WF5803默认供电时,其他IO都是高电平
+ // WF5803榛橀敓杈冪櫢鎷烽敓鏂ゆ嫹鏃堕敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹IO閿熸枻鎷烽敓瑙掗珮纰夋嫹骞
// SPI
GPIOA_SetBits(GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15);
GPIOA_ModeCfg(GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15, GPIO_ModeIN_PU);
- // CSB1: PA3
- // GPIOA_SetBits(GPIO_Pin_3);
- // GPIOA_ModeCfg(GPIO_Pin_3, GPIO_ModeIN_PU);
- // CSB1: PA3
- // GPIOA_SetBits(GPIO_Pin_3);
- // GPIOA_ModeCfg(GPIO_Pin_3, GPIO_ModeOut_PP_5mA);
+ // 鏉胯浇
+ // CSB1: PA12
+ GPIOA_SetBits(GPIO_Pin_12);
+ GPIOA_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_PU);
- // CSB2: PB9
- GPIOB_SetBits(GPIO_Pin_9);
- GPIOB_ModeCfg(GPIO_Pin_9, GPIO_ModeIN_PU);
+ // CSB2: PA3
+ GPIOA_SetBits(GPIO_Pin_3);
+ GPIOA_ModeCfg(GPIO_Pin_3, GPIO_ModeIN_PU);
- // CSB3: PB4
- GPIOB_SetBits(GPIO_Pin_4);
- GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeIN_PU);
-
- // CSB4: PB17
- GPIOB_SetBits(GPIO_Pin_17);
- GPIOB_ModeCfg(GPIO_Pin_17, GPIO_ModeIN_PU);
+ // CSB3: PA2
+ GPIOA_SetBits(GPIO_Pin_2);
+ GPIOA_ModeCfg(GPIO_Pin_2, GPIO_ModeIN_PU);
}
+// 閸︺劏绻栭柌宀冪箻娴兼垹婀㈢电O閹垮秳缍旀禍锟
void Lower_IO_Deinit(void)
{
// LED
- GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12);
- GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12, GPIO_ModeIN_PD);
+ GPIOB_ResetBits(GPIO_Pin_4 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_16 | GPIO_Pin_17);
+ GPIOB_ModeCfg(GPIO_Pin_4 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_16 | GPIO_Pin_17, GPIO_ModeIN_PD);
// KEY
- GPIOA_ResetBits(GPIO_Pin_7);
- GPIOA_ModeCfg(GPIO_Pin_7, GPIO_ModeIN_PU);
-
- // RESET KEY
- GPIOB_ResetBits(GPIO_Pin_7);
- GPIOB_ModeCfg(GPIO_Pin_7, GPIO_ModeIN_PU);
+ GPIOB_ResetBits(GPIO_Pin_0);
+// 鐢卞閮ㄤ笂鎷夌數闃讳簡
+ GPIOB_ModeCfg(GPIO_Pin_0, GPIO_ModeIN_Floating);
// motor
- GPIOB_ResetBits(GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2);
- GPIOB_ModeCfg(GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2, GPIO_ModeIN_PD);
+ GPIOA_ResetBits(GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9);
+ GPIOA_ModeCfg(GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9, GPIO_ModeOut_PP_5mA);
- // COIL_ADC
- GPIOA_ResetBits(GPIO_Pin_6);
- GPIOA_ModeCfg(GPIO_Pin_6, GPIO_ModeIN_PD);
+ // 3V8_EN
+ GPIOA_ResetBits(GPIO_Pin_7);
+// 鐢卞閮ㄤ笂鎷夌數闃讳簡
+ GPIOA_ModeCfg(GPIO_Pin_7, GPIO_ModeOut_PP_5mA);
- // ADC_CTRL,ADC_VBAT
- GPIOA_ResetBits(GPIO_Pin_0 | GPIO_Pin_1);
- GPIOA_ModeCfg(GPIO_Pin_0 | GPIO_Pin_1, GPIO_ModeIN_PD);
+ // ADC_VBAT
+ GPIOA_ResetBits(GPIO_Pin_1);
+ GPIOA_ModeCfg(GPIO_Pin_1, GPIO_ModeIN_Floating);
+
+
+// 4g鐨勪覆鍙d篃寰梔einit
+ // 4G
+// 3V8_EN涓嶈兘娴┖
+ // 3V8_EN
+ GPIOB_ResetBits(GPIO_Pin_3);
+// 鐢卞閮ㄤ笂鎷夌數闃讳簡
+ GPIOB_ModeCfg(GPIO_Pin_3, GPIO_ModeOut_PP_5mA);
+
+ GPIOB_ResetBits(GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);
+ GPIOB_ModeCfg(GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7, GPIO_ModeIN_PD);
}
void PRESS_LowPower(void)
@@ -214,8 +222,8 @@ uint8_t GetSensorData(TePressSensorIndex index)
return 1;
}
- // 气压数据
- // 温度数据
+ // 閿熸枻鎷峰帇閿熸枻鎷烽敓鏂ゆ嫹
+ // 閿熼摪璁规嫹閿熸枻鎷烽敓鏂ゆ嫹
for (uint8_t i = 0; i < 5; i++)
{
press_raw_data[index][i] = WF5803_ReadReg(0x06 + i, index);
@@ -249,7 +257,7 @@ void SensorData_Process(TePressSensorIndex index)
fDat = reading / 8388608.0f;
}
- press = fDat * 125 + 17.5; // WF5803_1BAR 如果是使用10m级别的深传就使用这个
+ press = fDat * 125 + 17.5; // WF5803_1BAR 閿熸枻鎷烽敓鏂ゆ嫹閿熺粸鐧告嫹閿燂拷10m閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷风暡顐嫹閿熺粸鐧告嫹閿熸枻鎷烽敓鏂ゆ嫹
press_value[index] = (uint32_t)(press * 1000); // pa
reading = press_raw_data[index][3];
@@ -285,6 +293,7 @@ uint16_t WF5803_ProcessEvent(uint8_t task_id, uint16_t events)
WF5803_WriteReg(0x30, 0x0A, kPressAtom);
tmos_start_task(press_task_id, WF5803_EVT_READ, MS1_TO_SYSTEM_TIME(5));
+ logDebug("WF5803_EVT_START");
return (events ^ WF5803_EVT_START);
}
else if (events & WF5803_EVT_READ)
@@ -312,6 +321,8 @@ uint16_t WF5803_ProcessEvent(uint8_t task_id, uint16_t events)
tmos_start_task(press_task_id, WF5803_EVT_START, MS1_TO_SYSTEM_TIME(800));
+ logDebug("WF5803_EVT_READ");
+
press_done_flag = 1;
return (events ^ WF5803_EVT_READ);
}
@@ -322,4 +333,5 @@ void BSP_PRESS_Init(void)
{
press_task_id = TMOS_ProcessEventRegister(WF5803_ProcessEvent);
tmos_set_event(press_task_id, WF5803_EVT_START);
+ logDebug("BSP_PRESS_Init");
}
diff --git a/APP/peripheral_main.c b/APP/peripheral_main.c
index 8785bbd..b4fd110 100644
--- a/APP/peripheral_main.c
+++ b/APP/peripheral_main.c
@@ -3,7 +3,7 @@
* Author : WCH
* Version : V1.1
* Date : 2020/08/06
- * Description : 外设从机应用主函数及任务系统初始化
+ * Description : 閿熸枻鎷烽敓鏂ゆ嫹韪婇敓鎺ワ讣鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓杈冧綆绛规嫹閿熺粸纭锋嫹閿燂拷
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
@@ -11,7 +11,7 @@
*******************************************************************************/
/******************************************************************************/
-/* 头文件包含 */
+/* 澶撮敓渚ョ》鎷烽敓鏂ゆ嫹閿熸枻鎷 */
#include "CONFIG.h"
#include "HAL.h"
#include "gattprofile.h"
@@ -42,7 +42,7 @@ const uint8_t MacAddr[6] = {0x84, 0xC2, 0xE4, 0x03, 0x02, 0x02};
/*********************************************************************
* @fn Main_Circulation
*
- * @brief 主循环
+ * @brief 閿熸枻鎷峰惊閿熸枻鎷
*
* @return none
*/
@@ -61,7 +61,7 @@ void Main_Circulation()
/*********************************************************************
* @fn main
*
- * @brief 主函数
+ * @brief 閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷
*
* @return none
*/
@@ -72,12 +72,19 @@ int main(void)
#endif
HSECFG_Capacitance(HSECap_18p);
SetSysClock(CLK_SOURCE_HSE_PLL_62_4MHz);
- SysTick_Config( GetSysClock() / 1000 * SYSTICK_INTERVAL); //设定嘀嗒时间1ms
-#if(defined(HAL_SLEEP)) && (HAL_SLEEP == FALSE)
- GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU);
- GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU);
+ SysTick_Config( GetSysClock() / 1000 * SYSTICK_INTERVAL); //閿熷熷畾閿熸枻鎷烽敓缁炴唻鎷烽敓锟1ms
+ // 3V8_EN
+ GPIOB_ResetBits(GPIO_Pin_3);
+// 鐢卞閮ㄤ笂鎷夌數闃讳簡
+ GPIOB_ModeCfg(GPIO_Pin_3, GPIO_ModeOut_PP_5mA);
+
+#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
+ GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
+ GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
#endif
+
#ifdef DEBUG
+// DEBUG閻€劎娈憉art1
BSP_UART3_Init();
logDebug("%s", TxBuff);
#endif
@@ -91,12 +98,12 @@ int main(void)
Peripheral_Init();
logDebug("Peripheral init ok\n");
-// BSP_PRESS_Init();
-// logDebug("BSP init ok\n");
-
- BSP_Ml307r_Init();
- logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
- logDebug("%s\n", VER_LIB);
+ BSP_PRESS_Init();
+ logDebug("BSP init ok\n");
+//
+// BSP_Ml307r_Init();
+// logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
+// logDebug("%s\n", VER_LIB);
Main_Circulation();
diff --git a/HAL/SLEEP.c b/HAL/SLEEP.c
index c89a07b..3d95e46 100644
--- a/HAL/SLEEP.c
+++ b/HAL/SLEEP.c
@@ -3,7 +3,7 @@
* Author : WCH
* Version : V1.2
* Date : 2022/01/18
- * Description : 睡眠配置及其初始化
+ * Description : 鐫¢敓鏂ゆ嫹閿熸枻鎷烽敓鐭》鎷烽敓鏂ゆ嫹閿熺粸纭锋嫹閿燂拷
*********************************************************************************
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
* Attention: This software (modified or not) and binary are used for
@@ -11,7 +11,7 @@
*******************************************************************************/
/******************************************************************************/
-/* 头文件包含 */
+/* 澶撮敓渚ョ》鎷烽敓鏂ゆ嫹閿熸枻鎷 */
#include "HAL.h"
#include "bsp_wf5803.h"
@@ -19,21 +19,21 @@
/*******************************************************************************
* @fn CH58x_LowPower
*
- * @brief 启动睡眠
+ * @brief 閿熸枻鎷烽敓鏂ゆ嫹鐫¢敓鏂ゆ嫹
*
- * @param time - 唤醒的时间点(RTC绝对值)
+ * @param time - 閿熸枻鎷烽敓绐栫鎷锋椂閿熸枻鎷锋倴鈮C閿熸枻鎷烽敓鏂ゆ嫹鍊奸敓鏂ゆ嫹
*
* @return state.
*/
__HIGH_CODE
uint32_t CH58x_LowPower(uint32_t time)
{
-#if(defined(HAL_SLEEP)) && (HAL_SLEEP == FALSE)
+#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
volatile uint32_t i;
uint32_t time_tign, time_sleep, time_curr;
unsigned long irq_status;
- // 提前唤醒
+ // 閿熸枻鎷峰墠閿熸枻鎷烽敓鏂ゆ嫹
if (time <= WAKE_UP_RTC_MAX_TIME) {
time_tign = time + (RTC_MAX_COUNT - WAKE_UP_RTC_MAX_TIME);
} else {
@@ -42,14 +42,14 @@ uint32_t CH58x_LowPower(uint32_t time)
SYS_DisableAllIrq(&irq_status);
time_curr = RTC_GetCycle32k();
- // 检测睡眠时间
+ // 閿熸枻鎷烽敓鍓款垽鎷烽敓缁炴唻鎷烽敓锟
if (time_tign < time_curr) {
time_sleep = time_tign + (RTC_MAX_COUNT - time_curr);
} else {
time_sleep = time_tign - time_curr;
}
- // 若睡眠时间小于最小睡眠时间或大于最大睡眠时间,则不睡眠
+ // 閿熸枻鎷风潯閿熸枻鎷锋椂閿熸枻鎷峰皬閿熸枻鎷烽敓鏂ゆ嫹灏忕潯閿熸枻鎷锋椂閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熷壙顖ゆ嫹閿熺粸鎲嬫嫹娲岊剨鎷烽敓鍓款垽鎷烽敓锟
if ((time_sleep < SLEEP_RTC_MIN_TIME) ||
(time_sleep > SLEEP_RTC_MAX_TIME)) {
SYS_RecoverIrq(irq_status);
@@ -59,19 +59,26 @@ uint32_t CH58x_LowPower(uint32_t time)
RTC_SetTignTime(time_tign);
SYS_RecoverIrq(irq_status);
-#if(DEBUG == Debug_UART0) // 使用其他串口输出打印信息需要修改这行代码
+// 杩欓噷鍙啓浜唘art0鐨勶紝鍏朵粬鐨勪篃瑕佹湁
+#if(DEBUG == Debug_UART0) // 浣块敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸帴鈽呮嫹閿熻緝顫嫹閿熸彮顏庢嫹钖烽敓鏂ゆ嫹閿熸枻鎷峰啓閿熸枻鎷烽敓锟
while((R8_UART0_LSR & RB_LSR_TX_ALL_EMP) == 0)
{
__nop();
}
+#elif (DEBUG == Debug_UART3)
+ while((R8_UART3_LSR & RB_LSR_TX_ALL_EMP) == 0)
+ {
+ __nop();
+ }
#endif
- // LOW POWER-sleep模式
+ // LOW POWER-sleep妯″紡
if(!RTCTigFlag)
{
+ // 鏉╂瑩鍣烽懛顏勭箒濞h濮為惃鍕剁礉TMOS娴兼俺鐨熼悽锟
PRESS_LowPower();
LowPower_Sleep(RB_PWR_RAM32K | RB_PWR_RAM96K | RB_PWR_EXTEND |RB_XT_PRE_EN );
- HSECFG_Current(HSE_RCur_100); // 降为额定电流(低功耗函数中提升了HSE偏置电流)
+ HSECFG_Current(HSE_RCur_100); // 閿熸枻鎷蜂负閿熺瓔瀹氶敓鏂ゆ嫹閿熸枻鎷(閿熼叺鐧告嫹閿熶茎鐚存嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷烽敓鏂ゆ嫹閿熸枻鎷稨SE鍋忛敓鐭鎷烽敓鏂ゆ嫹)
return 0;
}
@@ -82,7 +89,7 @@ uint32_t CH58x_LowPower(uint32_t time)
/*******************************************************************************
* @fn HAL_SleepInit
*
- * @brief 配置睡眠唤醒的方式 - RTC唤醒,触发模式
+ * @brief 閿熸枻鎷烽敓鏂ゆ嫹鐫¢敓绔紮鎷烽敓绐栫殑鍑ゆ嫹寮 - RTC閿熸枻鎷烽敓绐栵綇鎷烽敓鏂ゆ嫹閿熸枻鎷锋ā寮
*
* @param None.
*
@@ -92,10 +99,10 @@ void HAL_SleepInit(void)
{
#if(defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
sys_safe_access_enable();
- R8_SLP_WAKE_CTRL |= RB_SLP_RTC_WAKE; // RTC唤醒
+ R8_SLP_WAKE_CTRL |= RB_SLP_RTC_WAKE; // RTC閿熸枻鎷烽敓鏂ゆ嫹
sys_safe_access_disable();
sys_safe_access_enable();
- R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN; // 触发模式
+ R8_RTC_MODE_CTRL |= RB_RTC_TRIG_EN; // 閿熸枻鎷烽敓鏂ゆ嫹妯″紡
sys_safe_access_disable();
PFIC_EnableIRQ(RTC_IRQn);
#endif
diff --git a/bsp/inc/bsp_ml307r.h b/bsp/inc/bsp_ml307r.h
index 9fddfdf..0bc54c4 100644
--- a/bsp/inc/bsp_ml307r.h
+++ b/bsp/inc/bsp_ml307r.h
@@ -14,6 +14,19 @@
#define ML307_UART_TX_PIN GPIO_Pin_13 //PB13
#define ML307_UART_RX_PIN GPIO_Pin_12 //PB12
+typedef enum
+{
+ kHeartbeatStatus, // 定时心跳状态
+ kConcentrationHighStatus, // 浓度异常状态
+ kSelfCheckStatus, // 自检触发状态
+ kAlarmStatus, // 报警触发状态
+ kAlarmClearedStatus, // 报警解除状态
+ kSensorFaultStatus, // 传感器故障触发状态
+ kSensorRecoveredStatus, // 传感器故障解除状态
+ kPowerDownStatus, // 掉电状态
+} Mb26Status; // 当前所处的上报状态
+
+
void BSP_Ml307r_Init(void);
void Ml307r_Loop(void);