MS-DTU/Anjiehui7_TTS_ST_V2.4_LOCAL/User/gpio_vcc.c

205 lines
5.7 KiB
C
Raw Normal View History

2025-04-03 14:18:58 +08:00
/*
*********************************************************************************************************
* IAR Development Kits
* on the
*
* M451
*
* Filename : gpio_vcc.c
* Version : V1.00
* Programmer(s) : Qian Xianghong
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* INCLUDE FILES
*********************************************************************************************************
*/
#include "includes.h"
volatile uint8_t LCD_Disabled = 0;
void Vcc_Init()
{
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOE);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOC);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOH);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOA);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOB);
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOD);
// <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
// PA.13~14 is JTAG-SW
GPIO_InitStruct.Pin = LL_GPIO_PIN_4
|LL_GPIO_PIN_8|LL_GPIO_PIN_11;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_2;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
// PC.14~15 is OSC32
GPIO_InitStruct.Pin = LL_GPIO_PIN_4|LL_GPIO_PIN_5
|LL_GPIO_PIN_13;
LL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_3
|LL_GPIO_PIN_14;
LL_GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_2
|LL_GPIO_PIN_10;
LL_GPIO_Init(GPIOE, &GPIO_InitStruct);
// PH.0~1 is OSC_HSE
GPIO_InitStruct.Pin = LL_GPIO_PIN_3;
LL_GPIO_Init(GPIOH, &GPIO_InitStruct);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Pin = LL_GPIO_PIN_12;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_6|LL_GPIO_PIN_7;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_12;
LL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_4|LL_GPIO_PIN_11;
LL_GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.Pin = LL_GPIO_PIN_1
|LL_GPIO_PIN_9|LL_GPIO_PIN_11;
LL_GPIO_Init(GPIOE, &GPIO_InitStruct);
// <20><><EFBFBD>ÿ<EFBFBD><C3BF>ص<EFBFBD>Ĭ<EFBFBD><C4AC>״̬
VCC_GSM_OFF();
VCC_GPS_OFF();
VCC_RS485_OFF();
VCC_RF_OFF();
VCC_BD_OFF();
VCC_SFLASH_FRAM_ON();
VCC_SENSOR_5V_OFF();
KZ_CHARGE_ENABLE_LOW();
// <20>ϵ<EFBFBD><CFB5>ȹرյ<D8B1><D5B5>ŷ<EFBFBD>
KZ_CHARGE_DISABLE_HIGH();
Charge_Pulse_Time = GetDelayTick(1000);
KZ_ALARM_OFF();
KZ_LOW_ALARM_OFF();
KZ_LOW_LEVEL_OFF();
KZ_LEVEL_OFF();
}
// <20><>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void Vcc_Disable()
{
// <20>ѳ<EFBFBD><D1B3><EFBFBD>LCD<43><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6>жϡ<D0B6><CFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A1A2><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊģ<CEAA><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Mode = LL_GPIO_MODE_ANALOG;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
// PA.12 is VCC_GSM
// PA.13~14 is JTAG-SW
GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3
|LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7
|LL_GPIO_PIN_8|LL_GPIO_PIN_9|LL_GPIO_PIN_10|LL_GPIO_PIN_11
|LL_GPIO_PIN_15;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
// PB.6 is KZ_CHARGE_ENABLE
// PB.7 is KZ_CHARGE_DISABLE
// PB.8~9 is lcd (scl, sda)
// PB.12 is accelero-cs
// PB.13~15 is accelero-spi
GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3
|LL_GPIO_PIN_4|LL_GPIO_PIN_5
|LL_GPIO_PIN_10|LL_GPIO_PIN_11;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
// PC.7~9 is MA-CS
// PC.12 is VCC_RS485
// PC.14~15 is OSC32
GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_1|LL_GPIO_PIN_2|LL_GPIO_PIN_3
|LL_GPIO_PIN_4|LL_GPIO_PIN_5|LL_GPIO_PIN_6
|LL_GPIO_PIN_10|LL_GPIO_PIN_11
|LL_GPIO_PIN_13;
LL_GPIO_Init(GPIOC, &GPIO_InitStruct);
// PD.0 is KZ_LOW_LEVEL
// PD.1 is KZ_LEVEL
// PD.2 is VCC_BD
// PD.4 is VCC_GPS
// PD.10 is accelero-int
// PD.11 is VCC_RF
GPIO_InitStruct.Pin = LL_GPIO_PIN_3
|LL_GPIO_PIN_5|LL_GPIO_PIN_6|LL_GPIO_PIN_7
|LL_GPIO_PIN_8|LL_GPIO_PIN_9
|LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_14|LL_GPIO_PIN_15;
LL_GPIO_Init(GPIOD, &GPIO_InitStruct);
// PE.1 is VCC_SENSOR_5V
// PE.3~6 is keys
// PE.7 is ex-power
// PE.8 is leak_in
// PE.9 is KZ_ALARM
// PE.11 is VCC_SFLASH_FRAM
GPIO_InitStruct.Pin = LL_GPIO_PIN_0|LL_GPIO_PIN_2
|LL_GPIO_PIN_10
|LL_GPIO_PIN_12|LL_GPIO_PIN_13|LL_GPIO_PIN_14|LL_GPIO_PIN_15;
LL_GPIO_Init(GPIOE, &GPIO_InitStruct);
// PB.13~15 is accelero-spi
GPIO_InitStruct.Pin = LL_GPIO_PIN_13|LL_GPIO_PIN_14|LL_GPIO_PIN_15;
GPIO_InitStruct.Mode = LL_GPIO_MODE_OUTPUT;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
LL_GPIO_Init(GPIOB, &GPIO_InitStruct);
LL_GPIO_SetOutputPin(GPIOB, LL_GPIO_PIN_13|LL_GPIO_PIN_14|LL_GPIO_PIN_15);
}
// <20>ָ<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void Vcc_Enable()
{
Console_Init();
SFlash_Init();
FRAM_Init();
DAC7311_Init();
Wakeup_Init();
if(RF_initStatus)
RF_Init();
else
{
// BD_Init();
Slave_Init();
}
Sensor_Init();
Accelero_Init();
Sample_Init();
// Sample_ReOpen(); // <20><><EFBFBD>߻<EFBFBD><DFBB><EFBFBD><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>иú<D0B8><C3BA><EFBFBD>
Battery_Init();
DTU_Init();
Key_Init();
LCD_Init();
// <20>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VCC_SFLASH_FRAM_ON();
// <20><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DAC7311_Open();
}