205 lines
5.7 KiB
C
205 lines
5.7 KiB
C
/*
|
||
*********************************************************************************************************
|
||
* 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>零왕國多신
|
||
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>零渴놔多신
|
||
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>零역밑돨칵훰榴檄
|
||
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>든邱밑균든늚랫
|
||
KZ_CHARGE_DISABLE_HIGH();
|
||
Charge_Pulse_Time = GetDelayTick(1000);
|
||
|
||
KZ_ALARM_OFF();
|
||
KZ_LOW_ALARM_OFF();
|
||
KZ_LOW_LEVEL_OFF();
|
||
KZ_LEVEL_OFF();
|
||
}
|
||
|
||
// 쐐岺多신渴놔
|
||
void Vcc_Disable()
|
||
{
|
||
// 겉뇜죄LCD、객숩、속醵똑櫓뙤、념든쇱꿎、왠齡역밑鹿棍돨棍<EB8FA8>多신<E5A49A>槨친콰渴흙
|
||
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);
|
||
}
|
||
|
||
// 뿟릿繫斤多신渴놔
|
||
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(); // 金추뻥今鹿빈矜路劤獵契맡변鑒
|
||
Battery_Init();
|
||
DTU_Init();
|
||
Key_Init();
|
||
LCD_Init();
|
||
|
||
// 뿟릿棍<EBA6BF>多신
|
||
VCC_SFLASH_FRAM_ON();
|
||
// 왠齡든직渴놔역밑
|
||
DAC7311_Open();
|
||
}
|