LWL/MDK-ARM/keilpro/Listing/lcd.i
youxianghua faacc7b570 提交
2024-07-10 14:01:39 +08:00

18820 lines
216 KiB
OpenEdge ABL

#line 1 "..\\user\\src\\LCD.c"
#line 1 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 75 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 107 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 122 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 143 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 162 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
typedef enum IRQn
{
NonMaskableInt_IRQn = -14,
MemoryManagement_IRQn = -12,
BusFault_IRQn = -11,
UsageFault_IRQn = -10,
SVCall_IRQn = -5,
DebugMonitor_IRQn = -4,
PendSV_IRQn = -2,
SysTick_IRQn = -1,
WWDG_IRQn = 0,
PVD_IRQn = 1,
TAMPER_IRQn = 2,
RTC_IRQn = 3,
FLASH_IRQn = 4,
RCC_IRQn = 5,
EXTI0_IRQn = 6,
EXTI1_IRQn = 7,
EXTI2_IRQn = 8,
EXTI3_IRQn = 9,
EXTI4_IRQn = 10,
DMA1_Channel1_IRQn = 11,
DMA1_Channel2_IRQn = 12,
DMA1_Channel3_IRQn = 13,
DMA1_Channel4_IRQn = 14,
DMA1_Channel5_IRQn = 15,
DMA1_Channel6_IRQn = 16,
DMA1_Channel7_IRQn = 17,
#line 221 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 242 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
ADC1_2_IRQn = 18,
USB_HP_CAN1_TX_IRQn = 19,
USB_LP_CAN1_RX0_IRQn = 20,
CAN1_RX1_IRQn = 21,
CAN1_SCE_IRQn = 22,
EXTI9_5_IRQn = 23,
TIM1_BRK_IRQn = 24,
TIM1_UP_IRQn = 25,
TIM1_TRG_COM_IRQn = 26,
TIM1_CC_IRQn = 27,
TIM2_IRQn = 28,
TIM3_IRQn = 29,
TIM4_IRQn = 30,
I2C1_EV_IRQn = 31,
I2C1_ER_IRQn = 32,
I2C2_EV_IRQn = 33,
I2C2_ER_IRQn = 34,
SPI1_IRQn = 35,
SPI2_IRQn = 36,
USART1_IRQn = 37,
USART2_IRQn = 38,
USART3_IRQn = 39,
EXTI15_10_IRQn = 40,
RTCAlarm_IRQn = 41,
USBWakeUp_IRQn = 42
#line 296 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 341 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 381 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 426 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 472 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
} IRQn_Type;
#line 1 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
#line 1 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdint.h"
#line 27 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdint.h"
#line 46 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdint.h"
typedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef signed __int64 int64_t;
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __int64 uint64_t;
typedef signed char int_least8_t;
typedef signed short int int_least16_t;
typedef signed int int_least32_t;
typedef signed __int64 int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned __int64 uint_least64_t;
typedef signed int int_fast8_t;
typedef signed int int_fast16_t;
typedef signed int int_fast32_t;
typedef signed __int64 int_fast64_t;
typedef unsigned int uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
typedef unsigned __int64 uint_fast64_t;
typedef signed int intptr_t;
typedef unsigned int uintptr_t;
typedef signed long long intmax_t;
typedef unsigned long long uintmax_t;
#line 216 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdint.h"
#line 241 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdint.h"
#line 305 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdint.h"
#line 91 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
#line 117 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
typedef struct
{
volatile uint32_t ISER[8];
uint32_t RESERVED0[24];
volatile uint32_t ICER[8];
uint32_t RSERVED1[24];
volatile uint32_t ISPR[8];
uint32_t RESERVED2[24];
volatile uint32_t ICPR[8];
uint32_t RESERVED3[24];
volatile uint32_t IABR[8];
uint32_t RESERVED4[56];
volatile uint8_t IP[240];
uint32_t RESERVED5[644];
volatile uint32_t STIR;
} NVIC_Type;
typedef struct
{
volatile const uint32_t CPUID;
volatile uint32_t ICSR;
volatile uint32_t VTOR;
volatile uint32_t AIRCR;
volatile uint32_t SCR;
volatile uint32_t CCR;
volatile uint8_t SHP[12];
volatile uint32_t SHCSR;
volatile uint32_t CFSR;
volatile uint32_t HFSR;
volatile uint32_t DFSR;
volatile uint32_t MMFAR;
volatile uint32_t BFAR;
volatile uint32_t AFSR;
volatile const uint32_t PFR[2];
volatile const uint32_t DFR;
volatile const uint32_t ADR;
volatile const uint32_t MMFR[4];
volatile const uint32_t ISAR[5];
} SCB_Type;
typedef struct
{
volatile uint32_t CTRL;
volatile uint32_t LOAD;
volatile uint32_t VAL;
volatile const uint32_t CALIB;
} SysTick_Type;
typedef struct
{
volatile union
{
volatile uint8_t u8;
volatile uint16_t u16;
volatile uint32_t u32;
} PORT [32];
uint32_t RESERVED0[864];
volatile uint32_t TER;
uint32_t RESERVED1[15];
volatile uint32_t TPR;
uint32_t RESERVED2[15];
volatile uint32_t TCR;
uint32_t RESERVED3[29];
volatile uint32_t IWR;
volatile uint32_t IRR;
volatile uint32_t IMCR;
uint32_t RESERVED4[43];
volatile uint32_t LAR;
volatile uint32_t LSR;
uint32_t RESERVED5[6];
volatile const uint32_t PID4;
volatile const uint32_t PID5;
volatile const uint32_t PID6;
volatile const uint32_t PID7;
volatile const uint32_t PID0;
volatile const uint32_t PID1;
volatile const uint32_t PID2;
volatile const uint32_t PID3;
volatile const uint32_t CID0;
volatile const uint32_t CID1;
volatile const uint32_t CID2;
volatile const uint32_t CID3;
} ITM_Type;
typedef struct
{
uint32_t RESERVED0;
volatile const uint32_t ICTR;
uint32_t RESERVED1;
} InterruptType_Type;
#line 614 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
typedef struct
{
volatile uint32_t DHCSR;
volatile uint32_t DCRSR;
volatile uint32_t DCRDR;
volatile uint32_t DEMCR;
} CoreDebug_Type;
#line 721 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
#line 728 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
#line 758 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
#line 783 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
extern uint32_t __get_PSP(void);
extern void __set_PSP(uint32_t topOfProcStack);
extern uint32_t __get_MSP(void);
extern void __set_MSP(uint32_t topOfMainStack);
extern uint32_t __REV16(uint16_t value);
extern int32_t __REVSH(int16_t value);
#line 933 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
static __inline uint32_t __get_BASEPRI(void)
{
register uint32_t __regBasePri __asm("basepri");
return(__regBasePri);
}
static __inline void __set_BASEPRI(uint32_t basePri)
{
register uint32_t __regBasePri __asm("basepri");
__regBasePri = (basePri & 0xff);
}
static __inline uint32_t __get_PRIMASK(void)
{
register uint32_t __regPriMask __asm("primask");
return(__regPriMask);
}
static __inline void __set_PRIMASK(uint32_t priMask)
{
register uint32_t __regPriMask __asm("primask");
__regPriMask = (priMask);
}
static __inline uint32_t __get_FAULTMASK(void)
{
register uint32_t __regFaultMask __asm("faultmask");
return(__regFaultMask);
}
static __inline void __set_FAULTMASK(uint32_t faultMask)
{
register uint32_t __regFaultMask __asm("faultmask");
__regFaultMask = (faultMask & 1);
}
static __inline uint32_t __get_CONTROL(void)
{
register uint32_t __regControl __asm("control");
return(__regControl);
}
static __inline void __set_CONTROL(uint32_t control)
{
register uint32_t __regControl __asm("control");
__regControl = control;
}
#line 1445 "..\\..\\template\\Libraries\\CMSIS\\core_cm3.h"
static __inline void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
{
uint32_t reg_value;
uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);
reg_value = ((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR;
reg_value &= ~((0xFFFFul << 16) | (7ul << 8));
reg_value = (reg_value |
(0x5FA << 16) |
(PriorityGroupTmp << 8));
((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR = reg_value;
}
static __inline uint32_t NVIC_GetPriorityGrouping(void)
{
return ((((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR & (7ul << 8)) >> 8);
}
static __inline void NVIC_EnableIRQ(IRQn_Type IRQn)
{
((NVIC_Type *) ((0xE000E000) + 0x0100))->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
static __inline void NVIC_DisableIRQ(IRQn_Type IRQn)
{
((NVIC_Type *) ((0xE000E000) + 0x0100))->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
static __inline uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
{
return((uint32_t) ((((NVIC_Type *) ((0xE000E000) + 0x0100))->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0));
}
static __inline void NVIC_SetPendingIRQ(IRQn_Type IRQn)
{
((NVIC_Type *) ((0xE000E000) + 0x0100))->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
static __inline void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
{
((NVIC_Type *) ((0xE000E000) + 0x0100))->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F));
}
static __inline uint32_t NVIC_GetActive(IRQn_Type IRQn)
{
return((uint32_t)((((NVIC_Type *) ((0xE000E000) + 0x0100))->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0));
}
static __inline void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
{
if(IRQn < 0) {
((SCB_Type *) ((0xE000E000) + 0x0D00))->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - 4)) & 0xff); }
else {
((NVIC_Type *) ((0xE000E000) + 0x0100))->IP[(uint32_t)(IRQn)] = ((priority << (8 - 4)) & 0xff); }
}
static __inline uint32_t NVIC_GetPriority(IRQn_Type IRQn)
{
if(IRQn < 0) {
return((uint32_t)(((SCB_Type *) ((0xE000E000) + 0x0D00))->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - 4))); }
else {
return((uint32_t)(((NVIC_Type *) ((0xE000E000) + 0x0100))->IP[(uint32_t)(IRQn)] >> (8 - 4))); }
}
static __inline uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
{
uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);
uint32_t PreemptPriorityBits;
uint32_t SubPriorityBits;
PreemptPriorityBits = ((7 - PriorityGroupTmp) > 4) ? 4 : 7 - PriorityGroupTmp;
SubPriorityBits = ((PriorityGroupTmp + 4) < 7) ? 0 : PriorityGroupTmp - 7 + 4;
return (
((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) |
((SubPriority & ((1 << (SubPriorityBits )) - 1)))
);
}
static __inline void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)
{
uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);
uint32_t PreemptPriorityBits;
uint32_t SubPriorityBits;
PreemptPriorityBits = ((7 - PriorityGroupTmp) > 4) ? 4 : 7 - PriorityGroupTmp;
SubPriorityBits = ((PriorityGroupTmp + 4) < 7) ? 0 : PriorityGroupTmp - 7 + 4;
*pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1);
*pSubPriority = (Priority ) & ((1 << (SubPriorityBits )) - 1);
}
static __inline uint32_t SysTick_Config(uint32_t ticks)
{
if (ticks > (0xFFFFFFul << 0)) return (1);
((SysTick_Type *) ((0xE000E000) + 0x0010))->LOAD = (ticks & (0xFFFFFFul << 0)) - 1;
NVIC_SetPriority (SysTick_IRQn, (1<<4) - 1);
((SysTick_Type *) ((0xE000E000) + 0x0010))->VAL = 0;
((SysTick_Type *) ((0xE000E000) + 0x0010))->CTRL = (1ul << 2) |
(1ul << 1) |
(1ul << 0);
return (0);
}
static __inline void NVIC_SystemReset(void)
{
((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR = ((0x5FA << 16) |
(((SCB_Type *) ((0xE000E000) + 0x0D00))->AIRCR & (7ul << 8)) |
(1ul << 2));
__dsb(0);
while(1);
}
extern volatile int ITM_RxBuffer;
static __inline uint32_t ITM_SendChar (uint32_t ch)
{
if ((((CoreDebug_Type *) (0xE000EDF0))->DEMCR & (1ul << 24)) &&
(((ITM_Type *) (0xE0000000))->TCR & (1ul << 0)) &&
(((ITM_Type *) (0xE0000000))->TER & (1ul << 0) ) )
{
while (((ITM_Type *) (0xE0000000))->PORT[0].u32 == 0);
((ITM_Type *) (0xE0000000))->PORT[0].u8 = (uint8_t) ch;
}
return (ch);
}
static __inline int ITM_ReceiveChar (void) {
int ch = -1;
if (ITM_RxBuffer != 0x5AA55AA5) {
ch = ITM_RxBuffer;
ITM_RxBuffer = 0x5AA55AA5;
}
return (ch);
}
static __inline int ITM_CheckChar (void) {
if (ITM_RxBuffer == 0x5AA55AA5) {
return (0);
} else {
return (1);
}
}
#line 479 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1 "..\\..\\template\\Libraries\\CMSIS\\system_stm32f10x.h"
extern uint32_t SystemCoreClock;
extern void SystemInit(void);
extern void SystemCoreClockUpdate(void);
#line 480 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 481 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
typedef int32_t s32;
typedef int16_t s16;
typedef int8_t s8;
typedef const int32_t sc32;
typedef const int16_t sc16;
typedef const int8_t sc8;
typedef volatile int32_t vs32;
typedef volatile int16_t vs16;
typedef volatile int8_t vs8;
typedef volatile const int32_t vsc32;
typedef volatile const int16_t vsc16;
typedef volatile const int8_t vsc8;
typedef uint32_t u32;
typedef uint16_t u16;
typedef uint8_t u8;
typedef const uint32_t uc32;
typedef const uint16_t uc16;
typedef const uint8_t uc8;
typedef volatile uint32_t vu32;
typedef volatile uint16_t vu16;
typedef volatile uint8_t vu8;
typedef volatile const uint32_t vuc32;
typedef volatile const uint16_t vuc16;
typedef volatile const uint8_t vuc8;
typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;
typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;
typedef struct
{
volatile uint32_t SR;
volatile uint32_t CR1;
volatile uint32_t CR2;
volatile uint32_t SMPR1;
volatile uint32_t SMPR2;
volatile uint32_t JOFR1;
volatile uint32_t JOFR2;
volatile uint32_t JOFR3;
volatile uint32_t JOFR4;
volatile uint32_t HTR;
volatile uint32_t LTR;
volatile uint32_t SQR1;
volatile uint32_t SQR2;
volatile uint32_t SQR3;
volatile uint32_t JSQR;
volatile uint32_t JDR1;
volatile uint32_t JDR2;
volatile uint32_t JDR3;
volatile uint32_t JDR4;
volatile uint32_t DR;
} ADC_TypeDef;
typedef struct
{
uint32_t RESERVED0;
volatile uint16_t DR1;
uint16_t RESERVED1;
volatile uint16_t DR2;
uint16_t RESERVED2;
volatile uint16_t DR3;
uint16_t RESERVED3;
volatile uint16_t DR4;
uint16_t RESERVED4;
volatile uint16_t DR5;
uint16_t RESERVED5;
volatile uint16_t DR6;
uint16_t RESERVED6;
volatile uint16_t DR7;
uint16_t RESERVED7;
volatile uint16_t DR8;
uint16_t RESERVED8;
volatile uint16_t DR9;
uint16_t RESERVED9;
volatile uint16_t DR10;
uint16_t RESERVED10;
volatile uint16_t RTCCR;
uint16_t RESERVED11;
volatile uint16_t CR;
uint16_t RESERVED12;
volatile uint16_t CSR;
uint16_t RESERVED13[5];
volatile uint16_t DR11;
uint16_t RESERVED14;
volatile uint16_t DR12;
uint16_t RESERVED15;
volatile uint16_t DR13;
uint16_t RESERVED16;
volatile uint16_t DR14;
uint16_t RESERVED17;
volatile uint16_t DR15;
uint16_t RESERVED18;
volatile uint16_t DR16;
uint16_t RESERVED19;
volatile uint16_t DR17;
uint16_t RESERVED20;
volatile uint16_t DR18;
uint16_t RESERVED21;
volatile uint16_t DR19;
uint16_t RESERVED22;
volatile uint16_t DR20;
uint16_t RESERVED23;
volatile uint16_t DR21;
uint16_t RESERVED24;
volatile uint16_t DR22;
uint16_t RESERVED25;
volatile uint16_t DR23;
uint16_t RESERVED26;
volatile uint16_t DR24;
uint16_t RESERVED27;
volatile uint16_t DR25;
uint16_t RESERVED28;
volatile uint16_t DR26;
uint16_t RESERVED29;
volatile uint16_t DR27;
uint16_t RESERVED30;
volatile uint16_t DR28;
uint16_t RESERVED31;
volatile uint16_t DR29;
uint16_t RESERVED32;
volatile uint16_t DR30;
uint16_t RESERVED33;
volatile uint16_t DR31;
uint16_t RESERVED34;
volatile uint16_t DR32;
uint16_t RESERVED35;
volatile uint16_t DR33;
uint16_t RESERVED36;
volatile uint16_t DR34;
uint16_t RESERVED37;
volatile uint16_t DR35;
uint16_t RESERVED38;
volatile uint16_t DR36;
uint16_t RESERVED39;
volatile uint16_t DR37;
uint16_t RESERVED40;
volatile uint16_t DR38;
uint16_t RESERVED41;
volatile uint16_t DR39;
uint16_t RESERVED42;
volatile uint16_t DR40;
uint16_t RESERVED43;
volatile uint16_t DR41;
uint16_t RESERVED44;
volatile uint16_t DR42;
uint16_t RESERVED45;
} BKP_TypeDef;
typedef struct
{
volatile uint32_t TIR;
volatile uint32_t TDTR;
volatile uint32_t TDLR;
volatile uint32_t TDHR;
} CAN_TxMailBox_TypeDef;
typedef struct
{
volatile uint32_t RIR;
volatile uint32_t RDTR;
volatile uint32_t RDLR;
volatile uint32_t RDHR;
} CAN_FIFOMailBox_TypeDef;
typedef struct
{
volatile uint32_t FR1;
volatile uint32_t FR2;
} CAN_FilterRegister_TypeDef;
typedef struct
{
volatile uint32_t MCR;
volatile uint32_t MSR;
volatile uint32_t TSR;
volatile uint32_t RF0R;
volatile uint32_t RF1R;
volatile uint32_t IER;
volatile uint32_t ESR;
volatile uint32_t BTR;
uint32_t RESERVED0[88];
CAN_TxMailBox_TypeDef sTxMailBox[3];
CAN_FIFOMailBox_TypeDef sFIFOMailBox[2];
uint32_t RESERVED1[12];
volatile uint32_t FMR;
volatile uint32_t FM1R;
uint32_t RESERVED2;
volatile uint32_t FS1R;
uint32_t RESERVED3;
volatile uint32_t FFA1R;
uint32_t RESERVED4;
volatile uint32_t FA1R;
uint32_t RESERVED5[8];
CAN_FilterRegister_TypeDef sFilterRegister[14];
} CAN_TypeDef;
typedef struct
{
volatile uint32_t CFGR;
volatile uint32_t OAR;
volatile uint32_t PRES;
volatile uint32_t ESR;
volatile uint32_t CSR;
volatile uint32_t TXD;
volatile uint32_t RXD;
} CEC_TypeDef;
typedef struct
{
volatile uint32_t DR;
volatile uint8_t IDR;
uint8_t RESERVED0;
uint16_t RESERVED1;
volatile uint32_t CR;
} CRC_TypeDef;
typedef struct
{
volatile uint32_t CR;
volatile uint32_t SWTRIGR;
volatile uint32_t DHR12R1;
volatile uint32_t DHR12L1;
volatile uint32_t DHR8R1;
volatile uint32_t DHR12R2;
volatile uint32_t DHR12L2;
volatile uint32_t DHR8R2;
volatile uint32_t DHR12RD;
volatile uint32_t DHR12LD;
volatile uint32_t DHR8RD;
volatile uint32_t DOR1;
volatile uint32_t DOR2;
} DAC_TypeDef;
typedef struct
{
volatile uint32_t IDCODE;
volatile uint32_t CR;
}DBGMCU_TypeDef;
typedef struct
{
volatile uint32_t CCR;
volatile uint32_t CNDTR;
volatile uint32_t CPAR;
volatile uint32_t CMAR;
} DMA_Channel_TypeDef;
typedef struct
{
volatile uint32_t ISR;
volatile uint32_t IFCR;
} DMA_TypeDef;
typedef struct
{
volatile uint32_t MACCR;
volatile uint32_t MACFFR;
volatile uint32_t MACHTHR;
volatile uint32_t MACHTLR;
volatile uint32_t MACMIIAR;
volatile uint32_t MACMIIDR;
volatile uint32_t MACFCR;
volatile uint32_t MACVLANTR;
uint32_t RESERVED0[2];
volatile uint32_t MACRWUFFR;
volatile uint32_t MACPMTCSR;
uint32_t RESERVED1[2];
volatile uint32_t MACSR;
volatile uint32_t MACIMR;
volatile uint32_t MACA0HR;
volatile uint32_t MACA0LR;
volatile uint32_t MACA1HR;
volatile uint32_t MACA1LR;
volatile uint32_t MACA2HR;
volatile uint32_t MACA2LR;
volatile uint32_t MACA3HR;
volatile uint32_t MACA3LR;
uint32_t RESERVED2[40];
volatile uint32_t MMCCR;
volatile uint32_t MMCRIR;
volatile uint32_t MMCTIR;
volatile uint32_t MMCRIMR;
volatile uint32_t MMCTIMR;
uint32_t RESERVED3[14];
volatile uint32_t MMCTGFSCCR;
volatile uint32_t MMCTGFMSCCR;
uint32_t RESERVED4[5];
volatile uint32_t MMCTGFCR;
uint32_t RESERVED5[10];
volatile uint32_t MMCRFCECR;
volatile uint32_t MMCRFAECR;
uint32_t RESERVED6[10];
volatile uint32_t MMCRGUFCR;
uint32_t RESERVED7[334];
volatile uint32_t PTPTSCR;
volatile uint32_t PTPSSIR;
volatile uint32_t PTPTSHR;
volatile uint32_t PTPTSLR;
volatile uint32_t PTPTSHUR;
volatile uint32_t PTPTSLUR;
volatile uint32_t PTPTSAR;
volatile uint32_t PTPTTHR;
volatile uint32_t PTPTTLR;
uint32_t RESERVED8[567];
volatile uint32_t DMABMR;
volatile uint32_t DMATPDR;
volatile uint32_t DMARPDR;
volatile uint32_t DMARDLAR;
volatile uint32_t DMATDLAR;
volatile uint32_t DMASR;
volatile uint32_t DMAOMR;
volatile uint32_t DMAIER;
volatile uint32_t DMAMFBOCR;
uint32_t RESERVED9[9];
volatile uint32_t DMACHTDR;
volatile uint32_t DMACHRDR;
volatile uint32_t DMACHTBAR;
volatile uint32_t DMACHRBAR;
} ETH_TypeDef;
typedef struct
{
volatile uint32_t IMR;
volatile uint32_t EMR;
volatile uint32_t RTSR;
volatile uint32_t FTSR;
volatile uint32_t SWIER;
volatile uint32_t PR;
} EXTI_TypeDef;
typedef struct
{
volatile uint32_t ACR;
volatile uint32_t KEYR;
volatile uint32_t OPTKEYR;
volatile uint32_t SR;
volatile uint32_t CR;
volatile uint32_t AR;
volatile uint32_t RESERVED;
volatile uint32_t OBR;
volatile uint32_t WRPR;
#line 920 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
} FLASH_TypeDef;
typedef struct
{
volatile uint16_t RDP;
volatile uint16_t USER;
volatile uint16_t Data0;
volatile uint16_t Data1;
volatile uint16_t WRP0;
volatile uint16_t WRP1;
volatile uint16_t WRP2;
volatile uint16_t WRP3;
} OB_TypeDef;
typedef struct
{
volatile uint32_t BTCR[8];
} FSMC_Bank1_TypeDef;
typedef struct
{
volatile uint32_t BWTR[7];
} FSMC_Bank1E_TypeDef;
typedef struct
{
volatile uint32_t PCR2;
volatile uint32_t SR2;
volatile uint32_t PMEM2;
volatile uint32_t PATT2;
uint32_t RESERVED0;
volatile uint32_t ECCR2;
} FSMC_Bank2_TypeDef;
typedef struct
{
volatile uint32_t PCR3;
volatile uint32_t SR3;
volatile uint32_t PMEM3;
volatile uint32_t PATT3;
uint32_t RESERVED0;
volatile uint32_t ECCR3;
} FSMC_Bank3_TypeDef;
typedef struct
{
volatile uint32_t PCR4;
volatile uint32_t SR4;
volatile uint32_t PMEM4;
volatile uint32_t PATT4;
volatile uint32_t PIO4;
} FSMC_Bank4_TypeDef;
typedef struct
{
volatile uint32_t CRL;
volatile uint32_t CRH;
volatile uint32_t IDR;
volatile uint32_t ODR;
volatile uint32_t BSRR;
volatile uint32_t BRR;
volatile uint32_t LCKR;
} GPIO_TypeDef;
typedef struct
{
volatile uint32_t EVCR;
volatile uint32_t MAPR;
volatile uint32_t EXTICR[4];
uint32_t RESERVED0;
volatile uint32_t MAPR2;
} AFIO_TypeDef;
typedef struct
{
volatile uint16_t CR1;
uint16_t RESERVED0;
volatile uint16_t CR2;
uint16_t RESERVED1;
volatile uint16_t OAR1;
uint16_t RESERVED2;
volatile uint16_t OAR2;
uint16_t RESERVED3;
volatile uint16_t DR;
uint16_t RESERVED4;
volatile uint16_t SR1;
uint16_t RESERVED5;
volatile uint16_t SR2;
uint16_t RESERVED6;
volatile uint16_t CCR;
uint16_t RESERVED7;
volatile uint16_t TRISE;
uint16_t RESERVED8;
} I2C_TypeDef;
typedef struct
{
volatile uint32_t KR;
volatile uint32_t PR;
volatile uint32_t RLR;
volatile uint32_t SR;
} IWDG_TypeDef;
typedef struct
{
volatile uint32_t CR;
volatile uint32_t CSR;
} PWR_TypeDef;
typedef struct
{
volatile uint32_t CR;
volatile uint32_t CFGR;
volatile uint32_t CIR;
volatile uint32_t APB2RSTR;
volatile uint32_t APB1RSTR;
volatile uint32_t AHBENR;
volatile uint32_t APB2ENR;
volatile uint32_t APB1ENR;
volatile uint32_t BDCR;
volatile uint32_t CSR;
} RCC_TypeDef;
typedef struct
{
volatile uint16_t CRH;
uint16_t RESERVED0;
volatile uint16_t CRL;
uint16_t RESERVED1;
volatile uint16_t PRLH;
uint16_t RESERVED2;
volatile uint16_t PRLL;
uint16_t RESERVED3;
volatile uint16_t DIVH;
uint16_t RESERVED4;
volatile uint16_t DIVL;
uint16_t RESERVED5;
volatile uint16_t CNTH;
uint16_t RESERVED6;
volatile uint16_t CNTL;
uint16_t RESERVED7;
volatile uint16_t ALRH;
uint16_t RESERVED8;
volatile uint16_t ALRL;
uint16_t RESERVED9;
} RTC_TypeDef;
typedef struct
{
volatile uint32_t POWER;
volatile uint32_t CLKCR;
volatile uint32_t ARG;
volatile uint32_t CMD;
volatile const uint32_t RESPCMD;
volatile const uint32_t RESP1;
volatile const uint32_t RESP2;
volatile const uint32_t RESP3;
volatile const uint32_t RESP4;
volatile uint32_t DTIMER;
volatile uint32_t DLEN;
volatile uint32_t DCTRL;
volatile const uint32_t DCOUNT;
volatile const uint32_t STA;
volatile uint32_t ICR;
volatile uint32_t MASK;
uint32_t RESERVED0[2];
volatile const uint32_t FIFOCNT;
uint32_t RESERVED1[13];
volatile uint32_t FIFO;
} SDIO_TypeDef;
typedef struct
{
volatile uint16_t CR1;
uint16_t RESERVED0;
volatile uint16_t CR2;
uint16_t RESERVED1;
volatile uint16_t SR;
uint16_t RESERVED2;
volatile uint16_t DR;
uint16_t RESERVED3;
volatile uint16_t CRCPR;
uint16_t RESERVED4;
volatile uint16_t RXCRCR;
uint16_t RESERVED5;
volatile uint16_t TXCRCR;
uint16_t RESERVED6;
volatile uint16_t I2SCFGR;
uint16_t RESERVED7;
volatile uint16_t I2SPR;
uint16_t RESERVED8;
} SPI_TypeDef;
typedef struct
{
volatile uint16_t CR1;
uint16_t RESERVED0;
volatile uint16_t CR2;
uint16_t RESERVED1;
volatile uint16_t SMCR;
uint16_t RESERVED2;
volatile uint16_t DIER;
uint16_t RESERVED3;
volatile uint16_t SR;
uint16_t RESERVED4;
volatile uint16_t EGR;
uint16_t RESERVED5;
volatile uint16_t CCMR1;
uint16_t RESERVED6;
volatile uint16_t CCMR2;
uint16_t RESERVED7;
volatile uint16_t CCER;
uint16_t RESERVED8;
volatile uint16_t CNT;
uint16_t RESERVED9;
volatile uint16_t PSC;
uint16_t RESERVED10;
volatile uint16_t ARR;
uint16_t RESERVED11;
volatile uint16_t RCR;
uint16_t RESERVED12;
volatile uint16_t CCR1;
uint16_t RESERVED13;
volatile uint16_t CCR2;
uint16_t RESERVED14;
volatile uint16_t CCR3;
uint16_t RESERVED15;
volatile uint16_t CCR4;
uint16_t RESERVED16;
volatile uint16_t BDTR;
uint16_t RESERVED17;
volatile uint16_t DCR;
uint16_t RESERVED18;
volatile uint16_t DMAR;
uint16_t RESERVED19;
} TIM_TypeDef;
typedef struct
{
volatile uint16_t SR;
uint16_t RESERVED0;
volatile uint16_t DR;
uint16_t RESERVED1;
volatile uint16_t BRR;
uint16_t RESERVED2;
volatile uint16_t CR1;
uint16_t RESERVED3;
volatile uint16_t CR2;
uint16_t RESERVED4;
volatile uint16_t CR3;
uint16_t RESERVED5;
volatile uint16_t GTPR;
uint16_t RESERVED6;
} USART_TypeDef;
typedef struct
{
volatile uint32_t CR;
volatile uint32_t CFR;
volatile uint32_t SR;
} WWDG_TypeDef;
#line 1312 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1335 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1354 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1454 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1515 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1691 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1698 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1734 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1850 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1870 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1883 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1902 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1911 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1919 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1944 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1976 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1990 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1997 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2007 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2043 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2051 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2076 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2108 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2122 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2129 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2139 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2178 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2273 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2300 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2462 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2480 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2498 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2515 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2533 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2552 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2579 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2654 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2685 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2700 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2709 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2718 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2727 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2742 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2751 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2760 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2769 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2784 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2793 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2802 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2811 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2826 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2835 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2844 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2853 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2862 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2871 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2881 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2945 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2980 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3015 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3050 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3085 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3152 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3176 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3192 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3214 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3229 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3236 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3285 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3307 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3329 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3351 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3373 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3395 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3431 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3461 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3471 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3495 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3519 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3543 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3567 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3591 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3615 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3716 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3725 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3748 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3883 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3890 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3897 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3904 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3918 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3925 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3932 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3939 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3946 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3953 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3961 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3968 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3975 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3982 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3989 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 3996 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4004 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4011 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4018 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4025 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4167 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4177 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4225 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4268 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4282 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4292 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4411 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4446 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4457 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4465 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4472 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4494 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4556 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4568 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4606 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4629 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4652 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 4675 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5072 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5081 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5090 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5101 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5111 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5121 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5131 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5142 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5152 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5162 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5172 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5183 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5193 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5203 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5213 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5224 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5234 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5244 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5254 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5265 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5275 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5285 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5295 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5306 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5316 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5326 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5336 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5347 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5357 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5367 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5377 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5425 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5495 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5510 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5536 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5757 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5769 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5786 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5930 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5942 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5954 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5966 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5978 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 5990 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6002 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6014 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6028 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6040 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6052 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6064 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6076 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6088 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6100 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6112 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6124 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6136 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6148 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6160 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6172 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6184 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6196 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6208 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6228 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6239 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6257 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6295 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6316 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6456 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6473 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6490 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6507 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6541 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6575 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6609 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6643 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6677 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6711 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6745 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6779 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6813 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6847 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6881 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6915 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6949 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 6983 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7017 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7051 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7085 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7119 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7153 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7187 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7221 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7255 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7289 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7323 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7357 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7391 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7425 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7459 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7486 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7494 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7504 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7565 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7574 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7595 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7620 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7630 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7656 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7680 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7689 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7709 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7720 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7749 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7783 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 7823 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 8287 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 1 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 1 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 8327 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
typedef struct
{
uint32_t ADC_Mode;
FunctionalState ADC_ScanConvMode;
FunctionalState ADC_ContinuousConvMode;
uint32_t ADC_ExternalTrigConv;
uint32_t ADC_DataAlign;
uint8_t ADC_NbrOfChannel;
}ADC_InitTypeDef;
#line 104 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 115 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 129 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 139 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 154 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 192 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 205 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 229 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 266 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 282 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 297 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 305 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
#line 338 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_adc.h"
void ADC_DeInit(ADC_TypeDef* ADCx);
void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);
void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);
void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);
void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);
void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);
void ADC_ResetCalibration(ADC_TypeDef* ADCx);
FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx);
void ADC_StartCalibration(ADC_TypeDef* ADCx);
FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx);
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);
FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx);
void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number);
void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState);
void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime);
void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);
uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx);
uint32_t ADC_GetDualModeConversionValue(void);
void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);
void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState);
void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv);
void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);
void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState);
FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx);
void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime);
void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, uint8_t Length);
void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset);
uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel);
void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog);
void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, uint16_t LowThreshold);
void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel);
void ADC_TempSensorVrefintCmd(FunctionalState NewState);
FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG);
void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG);
ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT);
void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT);
#line 29 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_bkp.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_bkp.h"
#line 78 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_bkp.h"
#line 128 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_bkp.h"
#line 143 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_bkp.h"
void BKP_DeInit(void);
void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel);
void BKP_TamperPinCmd(FunctionalState NewState);
void BKP_ITConfig(FunctionalState NewState);
void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource);
void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue);
void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data);
uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR);
FlagStatus BKP_GetFlagStatus(void);
void BKP_ClearFlag(void);
ITStatus BKP_GetITStatus(void);
void BKP_ClearITPendingBit(void);
#line 30 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
typedef struct
{
uint16_t CAN_Prescaler;
uint8_t CAN_Mode;
uint8_t CAN_SJW;
uint8_t CAN_BS1;
uint8_t CAN_BS2;
FunctionalState CAN_TTCM;
FunctionalState CAN_ABOM;
FunctionalState CAN_AWUM;
FunctionalState CAN_NART;
FunctionalState CAN_RFLM;
FunctionalState CAN_TXFP;
} CAN_InitTypeDef;
typedef struct
{
uint16_t CAN_FilterIdHigh;
uint16_t CAN_FilterIdLow;
uint16_t CAN_FilterMaskIdHigh;
uint16_t CAN_FilterMaskIdLow;
uint16_t CAN_FilterFIFOAssignment;
uint8_t CAN_FilterNumber;
uint8_t CAN_FilterMode;
uint8_t CAN_FilterScale;
FunctionalState CAN_FilterActivation;
} CAN_FilterInitTypeDef;
typedef struct
{
uint32_t StdId;
uint32_t ExtId;
uint8_t IDE;
uint8_t RTR;
uint8_t DLC;
uint8_t Data[8];
} CanTxMsg;
typedef struct
{
uint32_t StdId;
uint32_t ExtId;
uint8_t IDE;
uint8_t RTR;
uint8_t DLC;
uint8_t Data[8];
uint8_t FMI;
} CanRxMsg;
#line 301 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 319 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 493 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 518 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 539 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 565 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 590 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 597 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
#line 621 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_can.h"
void CAN_DeInit(CAN_TypeDef* CANx);
uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct);
void CAN_FilterInit(CAN_FilterInitTypeDef* CAN_FilterInitStruct);
void CAN_StructInit(CAN_InitTypeDef* CAN_InitStruct);
void CAN_SlaveStartBank(uint8_t CAN_BankNumber);
void CAN_DBGFreeze(CAN_TypeDef* CANx, FunctionalState NewState);
void CAN_TTComModeCmd(CAN_TypeDef* CANx, FunctionalState NewState);
uint8_t CAN_Transmit(CAN_TypeDef* CANx, CanTxMsg* TxMessage);
uint8_t CAN_TransmitStatus(CAN_TypeDef* CANx, uint8_t TransmitMailbox);
void CAN_CancelTransmit(CAN_TypeDef* CANx, uint8_t Mailbox);
void CAN_Receive(CAN_TypeDef* CANx, uint8_t FIFONumber, CanRxMsg* RxMessage);
void CAN_FIFORelease(CAN_TypeDef* CANx, uint8_t FIFONumber);
uint8_t CAN_MessagePending(CAN_TypeDef* CANx, uint8_t FIFONumber);
uint8_t CAN_OperatingModeRequest(CAN_TypeDef* CANx, uint8_t CAN_OperatingMode);
uint8_t CAN_Sleep(CAN_TypeDef* CANx);
uint8_t CAN_WakeUp(CAN_TypeDef* CANx);
uint8_t CAN_GetLastErrorCode(CAN_TypeDef* CANx);
uint8_t CAN_GetReceiveErrorCounter(CAN_TypeDef* CANx);
uint8_t CAN_GetLSBTransmitErrorCounter(CAN_TypeDef* CANx);
void CAN_ITConfig(CAN_TypeDef* CANx, uint32_t CAN_IT, FunctionalState NewState);
FlagStatus CAN_GetFlagStatus(CAN_TypeDef* CANx, uint32_t CAN_FLAG);
void CAN_ClearFlag(CAN_TypeDef* CANx, uint32_t CAN_FLAG);
ITStatus CAN_GetITStatus(CAN_TypeDef* CANx, uint32_t CAN_IT);
void CAN_ClearITPendingBit(CAN_TypeDef* CANx, uint32_t CAN_IT);
#line 31 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_cec.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_cec.h"
typedef struct
{
uint16_t CEC_BitTimingMode;
uint16_t CEC_BitPeriodMode;
}CEC_InitTypeDef;
#line 100 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_cec.h"
#line 136 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_cec.h"
#line 147 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_cec.h"
#line 157 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_cec.h"
void CEC_DeInit(void);
void CEC_Init(CEC_InitTypeDef* CEC_InitStruct);
void CEC_Cmd(FunctionalState NewState);
void CEC_ITConfig(FunctionalState NewState);
void CEC_OwnAddressConfig(uint8_t CEC_OwnAddress);
void CEC_SetPrescaler(uint16_t CEC_Prescaler);
void CEC_SendDataByte(uint8_t Data);
uint8_t CEC_ReceiveDataByte(void);
void CEC_StartOfMessage(void);
void CEC_EndOfMessageCmd(FunctionalState NewState);
FlagStatus CEC_GetFlagStatus(uint32_t CEC_FLAG);
void CEC_ClearFlag(uint32_t CEC_FLAG);
ITStatus CEC_GetITStatus(uint8_t CEC_IT);
void CEC_ClearITPendingBit(uint16_t CEC_IT);
#line 32 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_crc.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_crc.h"
void CRC_ResetDR(void);
uint32_t CRC_CalcCRC(uint32_t Data);
uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength);
uint32_t CRC_GetCRC(void);
void CRC_SetIDRegister(uint8_t IDValue);
uint8_t CRC_GetIDRegister(void);
#line 33 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
typedef struct
{
uint32_t DAC_Trigger;
uint32_t DAC_WaveGeneration;
uint32_t DAC_LFSRUnmask_TriangleAmplitude;
uint32_t DAC_OutputBuffer;
}DAC_InitTypeDef;
#line 94 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
#line 104 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
#line 119 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
#line 151 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
#line 176 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
#line 214 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
#line 261 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
void DAC_DeInit(void);
void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct);
void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct);
void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState);
void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState);
void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState);
void DAC_DualSoftwareTriggerCmd(FunctionalState NewState);
void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, FunctionalState NewState);
void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data);
void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data);
void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t Data1);
uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel);
#line 299 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dac.h"
#line 34 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dbgmcu.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dbgmcu.h"
#line 80 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dbgmcu.h"
uint32_t DBGMCU_GetREVID(void);
uint32_t DBGMCU_GetDEVID(void);
void DBGMCU_Config(uint32_t DBGMCU_Periph, FunctionalState NewState);
#line 35 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
typedef struct
{
uint32_t DMA_PeripheralBaseAddr;
uint32_t DMA_MemoryBaseAddr;
uint32_t DMA_DIR;
uint32_t DMA_BufferSize;
uint32_t DMA_PeripheralInc;
uint32_t DMA_MemoryInc;
uint32_t DMA_PeripheralDataSize;
uint32_t DMA_MemoryDataSize;
uint32_t DMA_Mode;
uint32_t DMA_Priority;
uint32_t DMA_M2M;
}DMA_InitTypeDef;
#line 107 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 154 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 168 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 195 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 248 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 269 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 296 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 332 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 353 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
#line 380 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_dma.h"
void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx);
void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_InitStruct);
void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct);
void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState);
void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, FunctionalState NewState);
void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t DataNumber);
uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx);
FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG);
void DMA_ClearFlag(uint32_t DMAy_FLAG);
ITStatus DMA_GetITStatus(uint32_t DMAy_IT);
void DMA_ClearITPendingBit(uint32_t DMAy_IT);
#line 36 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_exti.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_exti.h"
typedef enum
{
EXTI_Mode_Interrupt = 0x00,
EXTI_Mode_Event = 0x04
}EXTIMode_TypeDef;
typedef enum
{
EXTI_Trigger_Rising = 0x08,
EXTI_Trigger_Falling = 0x0C,
EXTI_Trigger_Rising_Falling = 0x10
}EXTITrigger_TypeDef;
typedef struct
{
uint32_t EXTI_Line;
EXTIMode_TypeDef EXTI_Mode;
EXTITrigger_TypeDef EXTI_Trigger;
FunctionalState EXTI_LineCmd;
}EXTI_InitTypeDef;
#line 124 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_exti.h"
#line 136 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_exti.h"
void EXTI_DeInit(void);
void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct);
void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line);
FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line);
void EXTI_ClearFlag(uint32_t EXTI_Line);
ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);
void EXTI_ClearITPendingBit(uint32_t EXTI_Line);
#line 37 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
typedef enum
{
FLASH_BUSY = 1,
FLASH_ERROR_PG,
FLASH_ERROR_WRP,
FLASH_COMPLETE,
FLASH_TIMEOUT
}FLASH_Status;
#line 77 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 118 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 144 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 211 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 270 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 291 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 333 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 346 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
void FLASH_SetLatency(uint32_t FLASH_Latency);
void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess);
void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer);
void FLASH_Unlock(void);
void FLASH_Lock(void);
FLASH_Status FLASH_ErasePage(uint32_t Page_Address);
FLASH_Status FLASH_EraseAllPages(void);
FLASH_Status FLASH_EraseOptionBytes(void);
FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data);
FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data);
FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data);
FLASH_Status FLASH_EnableWriteProtection(uint32_t FLASH_Pages);
FLASH_Status FLASH_ReadOutProtection(FunctionalState NewState);
FLASH_Status FLASH_UserOptionByteConfig(uint16_t OB_IWDG, uint16_t OB_STOP, uint16_t OB_STDBY);
uint32_t FLASH_GetUserOptionByte(void);
uint32_t FLASH_GetWriteProtectionOptionByte(void);
FlagStatus FLASH_GetReadOutProtectionStatus(void);
FlagStatus FLASH_GetPrefetchBufferStatus(void);
void FLASH_ITConfig(uint32_t FLASH_IT, FunctionalState NewState);
FlagStatus FLASH_GetFlagStatus(uint32_t FLASH_FLAG);
void FLASH_ClearFlag(uint32_t FLASH_FLAG);
FLASH_Status FLASH_GetStatus(void);
FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout);
void FLASH_UnlockBank1(void);
void FLASH_LockBank1(void);
FLASH_Status FLASH_EraseAllBank1Pages(void);
FLASH_Status FLASH_GetBank1Status(void);
FLASH_Status FLASH_WaitForLastBank1Operation(uint32_t Timeout);
#line 408 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_flash.h"
#line 38 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_fsmc.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_fsmc.h"
typedef struct
{
uint32_t FSMC_AddressSetupTime;
uint32_t FSMC_AddressHoldTime;
uint32_t FSMC_DataSetupTime;
uint32_t FSMC_BusTurnAroundDuration;
uint32_t FSMC_CLKDivision;
uint32_t FSMC_DataLatency;
uint32_t FSMC_AccessMode;
}FSMC_NORSRAMTimingInitTypeDef;
typedef struct
{
uint32_t FSMC_Bank;
uint32_t FSMC_DataAddressMux;
uint32_t FSMC_MemoryType;
uint32_t FSMC_MemoryDataWidth;
uint32_t FSMC_BurstAccessMode;
uint32_t FSMC_AsynchronousWait;
uint32_t FSMC_WaitSignalPolarity;
uint32_t FSMC_WrapMode;
uint32_t FSMC_WaitSignalActive;
uint32_t FSMC_WriteOperation;
uint32_t FSMC_WaitSignal;
uint32_t FSMC_ExtendedMode;
uint32_t FSMC_WriteBurst;
FSMC_NORSRAMTimingInitTypeDef* FSMC_ReadWriteTimingStruct;
FSMC_NORSRAMTimingInitTypeDef* FSMC_WriteTimingStruct;
}FSMC_NORSRAMInitTypeDef;
typedef struct
{
uint32_t FSMC_SetupTime;
uint32_t FSMC_WaitSetupTime;
uint32_t FSMC_HoldSetupTime;
uint32_t FSMC_HiZSetupTime;
}FSMC_NAND_PCCARDTimingInitTypeDef;
typedef struct
{
uint32_t FSMC_Bank;
uint32_t FSMC_Waitfeature;
uint32_t FSMC_MemoryDataWidth;
uint32_t FSMC_ECC;
uint32_t FSMC_ECCPageSize;
uint32_t FSMC_TCLRSetupTime;
uint32_t FSMC_TARSetupTime;
FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_CommonSpaceTimingStruct;
FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_AttributeSpaceTimingStruct;
}FSMC_NANDInitTypeDef;
typedef struct
{
uint32_t FSMC_Waitfeature;
uint32_t FSMC_TCLRSetupTime;
uint32_t FSMC_TARSetupTime;
FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_CommonSpaceTimingStruct;
FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_AttributeSpaceTimingStruct;
FSMC_NAND_PCCARDTimingInitTypeDef* FSMC_IOSpaceTimingStruct;
}FSMC_PCCARDInitTypeDef;
#line 317 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_fsmc.h"
#line 521 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_fsmc.h"
#line 577 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_fsmc.h"
#line 653 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_fsmc.h"
#line 669 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_fsmc.h"
void FSMC_NORSRAMDeInit(uint32_t FSMC_Bank);
void FSMC_NANDDeInit(uint32_t FSMC_Bank);
void FSMC_PCCARDDeInit(void);
void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct);
void FSMC_NANDInit(FSMC_NANDInitTypeDef* FSMC_NANDInitStruct);
void FSMC_PCCARDInit(FSMC_PCCARDInitTypeDef* FSMC_PCCARDInitStruct);
void FSMC_NORSRAMStructInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct);
void FSMC_NANDStructInit(FSMC_NANDInitTypeDef* FSMC_NANDInitStruct);
void FSMC_PCCARDStructInit(FSMC_PCCARDInitTypeDef* FSMC_PCCARDInitStruct);
void FSMC_NORSRAMCmd(uint32_t FSMC_Bank, FunctionalState NewState);
void FSMC_NANDCmd(uint32_t FSMC_Bank, FunctionalState NewState);
void FSMC_PCCARDCmd(FunctionalState NewState);
void FSMC_NANDECCCmd(uint32_t FSMC_Bank, FunctionalState NewState);
uint32_t FSMC_GetECC(uint32_t FSMC_Bank);
void FSMC_ITConfig(uint32_t FSMC_Bank, uint32_t FSMC_IT, FunctionalState NewState);
FlagStatus FSMC_GetFlagStatus(uint32_t FSMC_Bank, uint32_t FSMC_FLAG);
void FSMC_ClearFlag(uint32_t FSMC_Bank, uint32_t FSMC_FLAG);
ITStatus FSMC_GetITStatus(uint32_t FSMC_Bank, uint32_t FSMC_IT);
void FSMC_ClearITPendingBit(uint32_t FSMC_Bank, uint32_t FSMC_IT);
#line 39 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 53 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
typedef enum
{
GPIO_Speed_10MHz = 1,
GPIO_Speed_2MHz,
GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;
typedef enum
{ GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
typedef struct
{
uint16_t GPIO_Pin;
GPIOSpeed_TypeDef GPIO_Speed;
GPIOMode_TypeDef GPIO_Mode;
}GPIO_InitTypeDef;
typedef enum
{ Bit_RESET = 0,
Bit_SET
}BitAction;
#line 144 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 163 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 204 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 217 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 245 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 266 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 274 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 299 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
#line 316 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_gpio.h"
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
void GPIO_AFIODeInit(void);
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);
void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
void GPIO_EventOutputCmd(FunctionalState NewState);
void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);
void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);
#line 40 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
typedef struct
{
uint32_t I2C_ClockSpeed;
uint16_t I2C_Mode;
uint16_t I2C_DutyCycle;
uint16_t I2C_OwnAddress1;
uint16_t I2C_Ack;
uint16_t I2C_AcknowledgedAddress;
}I2C_InitTypeDef;
#line 92 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
#line 166 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
#line 236 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
#line 246 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
#line 265 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
#line 284 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
#line 298 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
#line 496 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_i2c.h"
void I2C_DeInit(I2C_TypeDef* I2Cx);
void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct);
void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct);
void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_DMALastTransferCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_AcknowledgeConfig(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint8_t Address);
void I2C_DualAddressCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_GeneralCallCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_ITConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState NewState);
void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data);
uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx);
void I2C_Send7bitAddress(I2C_TypeDef* I2Cx, uint8_t Address, uint8_t I2C_Direction);
uint16_t I2C_ReadRegister(I2C_TypeDef* I2Cx, uint8_t I2C_Register);
void I2C_SoftwareResetCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_NACKPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_NACKPosition);
void I2C_SMBusAlertConfig(I2C_TypeDef* I2Cx, uint16_t I2C_SMBusAlert);
void I2C_TransmitPEC(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_PECPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_PECPosition);
void I2C_CalculatePEC(I2C_TypeDef* I2Cx, FunctionalState NewState);
uint8_t I2C_GetPEC(I2C_TypeDef* I2Cx);
void I2C_ARPCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_StretchClockCmd(I2C_TypeDef* I2Cx, FunctionalState NewState);
void I2C_FastModeDutyCycleConfig(I2C_TypeDef* I2Cx, uint16_t I2C_DutyCycle);
ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT);
uint32_t I2C_GetLastEvent(I2C_TypeDef* I2Cx);
FlagStatus I2C_GetFlagStatus(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG);
void I2C_ClearFlag(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG);
ITStatus I2C_GetITStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT);
void I2C_ClearITPendingBit(I2C_TypeDef* I2Cx, uint32_t I2C_IT);
#line 41 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_iwdg.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_iwdg.h"
#line 84 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_iwdg.h"
void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);
void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);
void IWDG_SetReload(uint16_t Reload);
void IWDG_ReloadCounter(void);
void IWDG_Enable(void);
FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG);
#line 42 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_pwr.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_pwr.h"
#line 70 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_pwr.h"
void PWR_DeInit(void);
void PWR_BackupAccessCmd(FunctionalState NewState);
void PWR_PVDCmd(FunctionalState NewState);
void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel);
void PWR_WakeUpPinCmd(FunctionalState NewState);
void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry);
void PWR_EnterSTANDBYMode(void);
FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG);
void PWR_ClearFlag(uint32_t PWR_FLAG);
#line 43 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
typedef struct
{
uint32_t SYSCLK_Frequency;
uint32_t HCLK_Frequency;
uint32_t PCLK1_Frequency;
uint32_t PCLK2_Frequency;
uint32_t ADCCLK_Frequency;
}RCC_ClocksTypeDef;
#line 94 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 126 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 141 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 175 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 196 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 283 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 295 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 317 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 333 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 347 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 364 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 396 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 423 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 435 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 462 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 489 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 518 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 553 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 586 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 606 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
#line 625 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
void RCC_DeInit(void);
void RCC_HSEConfig(uint32_t RCC_HSE);
ErrorStatus RCC_WaitForHSEStartUp(void);
void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue);
void RCC_HSICmd(FunctionalState NewState);
void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul);
void RCC_PLLCmd(FunctionalState NewState);
#line 666 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rcc.h"
void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource);
uint8_t RCC_GetSYSCLKSource(void);
void RCC_HCLKConfig(uint32_t RCC_SYSCLK);
void RCC_PCLK1Config(uint32_t RCC_HCLK);
void RCC_PCLK2Config(uint32_t RCC_HCLK);
void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState);
void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource);
void RCC_ADCCLKConfig(uint32_t RCC_PCLK2);
void RCC_LSEConfig(uint8_t RCC_LSE);
void RCC_LSICmd(FunctionalState NewState);
void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource);
void RCC_RTCCLKCmd(FunctionalState NewState);
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks);
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
void RCC_BackupResetCmd(FunctionalState NewState);
void RCC_ClockSecuritySystemCmd(FunctionalState NewState);
void RCC_MCOConfig(uint8_t RCC_MCO);
FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG);
void RCC_ClearFlag(void);
ITStatus RCC_GetITStatus(uint8_t RCC_IT);
void RCC_ClearITPendingBit(uint8_t RCC_IT);
#line 44 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rtc.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rtc.h"
#line 64 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rtc.h"
#line 82 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_rtc.h"
void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState);
void RTC_EnterConfigMode(void);
void RTC_ExitConfigMode(void);
uint32_t RTC_GetCounter(void);
void RTC_SetCounter(uint32_t CounterValue);
void RTC_SetPrescaler(uint32_t PrescalerValue);
void RTC_SetAlarm(uint32_t AlarmValue);
uint32_t RTC_GetDivider(void);
void RTC_WaitForLastTask(void);
void RTC_WaitForSynchro(void);
FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG);
void RTC_ClearFlag(uint16_t RTC_FLAG);
ITStatus RTC_GetITStatus(uint16_t RTC_IT);
void RTC_ClearITPendingBit(uint16_t RTC_IT);
#line 45 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_sdio.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_sdio.h"
typedef struct
{
uint32_t SDIO_ClockEdge;
uint32_t SDIO_ClockBypass;
uint32_t SDIO_ClockPowerSave;
uint32_t SDIO_BusWide;
uint32_t SDIO_HardwareFlowControl;
uint8_t SDIO_ClockDiv;
} SDIO_InitTypeDef;
typedef struct
{
uint32_t SDIO_Argument;
uint32_t SDIO_CmdIndex;
uint32_t SDIO_Response;
uint32_t SDIO_Wait;
uint32_t SDIO_CPSM;
} SDIO_CmdInitTypeDef;
typedef struct
{
uint32_t SDIO_DataTimeOut;
uint32_t SDIO_DataLength;
uint32_t SDIO_DataBlockSize;
uint32_t SDIO_TransferDir;
uint32_t SDIO_TransferMode;
uint32_t SDIO_DPSM;
} SDIO_DataInitTypeDef;
#line 222 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_sdio.h"
#line 245 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_sdio.h"
#line 283 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_sdio.h"
#line 330 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_sdio.h"
#line 421 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_sdio.h"
#line 448 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_sdio.h"
void SDIO_DeInit(void);
void SDIO_Init(SDIO_InitTypeDef* SDIO_InitStruct);
void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct);
void SDIO_ClockCmd(FunctionalState NewState);
void SDIO_SetPowerState(uint32_t SDIO_PowerState);
uint32_t SDIO_GetPowerState(void);
void SDIO_ITConfig(uint32_t SDIO_IT, FunctionalState NewState);
void SDIO_DMACmd(FunctionalState NewState);
void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct);
void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct);
uint8_t SDIO_GetCommandResponse(void);
uint32_t SDIO_GetResponse(uint32_t SDIO_RESP);
void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct);
void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct);
uint32_t SDIO_GetDataCounter(void);
uint32_t SDIO_ReadData(void);
void SDIO_WriteData(uint32_t Data);
uint32_t SDIO_GetFIFOCount(void);
void SDIO_StartSDIOReadWait(FunctionalState NewState);
void SDIO_StopSDIOReadWait(FunctionalState NewState);
void SDIO_SetSDIOReadWaitMode(uint32_t SDIO_ReadWaitMode);
void SDIO_SetSDIOOperation(FunctionalState NewState);
void SDIO_SendSDIOSuspendCmd(FunctionalState NewState);
void SDIO_CommandCompletionCmd(FunctionalState NewState);
void SDIO_CEATAITCmd(FunctionalState NewState);
void SDIO_SendCEATACmd(FunctionalState NewState);
FlagStatus SDIO_GetFlagStatus(uint32_t SDIO_FLAG);
void SDIO_ClearFlag(uint32_t SDIO_FLAG);
ITStatus SDIO_GetITStatus(uint32_t SDIO_IT);
void SDIO_ClearITPendingBit(uint32_t SDIO_IT);
#line 46 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
typedef struct
{
uint16_t SPI_Direction;
uint16_t SPI_Mode;
uint16_t SPI_DataSize;
uint16_t SPI_CPOL;
uint16_t SPI_CPHA;
uint16_t SPI_NSS;
uint16_t SPI_BaudRatePrescaler;
uint16_t SPI_FirstBit;
uint16_t SPI_CRCPolynomial;
}SPI_InitTypeDef;
typedef struct
{
uint16_t I2S_Mode;
uint16_t I2S_Standard;
uint16_t I2S_DataFormat;
uint16_t I2S_MCLKOutput;
uint32_t I2S_AudioFreq;
uint16_t I2S_CPOL;
}I2S_InitTypeDef;
#line 136 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
#line 220 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
#line 248 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
#line 266 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
#line 282 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
#line 312 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
#line 396 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
#line 417 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_spi.h"
void SPI_I2S_DeInit(SPI_TypeDef* SPIx);
void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct);
void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct);
void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct);
void I2S_StructInit(I2S_InitTypeDef* I2S_InitStruct);
void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState);
void I2S_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState);
void SPI_I2S_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT, FunctionalState NewState);
void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, FunctionalState NewState);
void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data);
uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx);
void SPI_NSSInternalSoftwareConfig(SPI_TypeDef* SPIx, uint16_t SPI_NSSInternalSoft);
void SPI_SSOutputCmd(SPI_TypeDef* SPIx, FunctionalState NewState);
void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint16_t SPI_DataSize);
void SPI_TransmitCRC(SPI_TypeDef* SPIx);
void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState);
uint16_t SPI_GetCRC(SPI_TypeDef* SPIx, uint8_t SPI_CRC);
uint16_t SPI_GetCRCPolynomial(SPI_TypeDef* SPIx);
void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint16_t SPI_Direction);
FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG);
void SPI_I2S_ClearFlag(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG);
ITStatus SPI_I2S_GetITStatus(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT);
void SPI_I2S_ClearITPendingBit(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT);
#line 47 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
typedef struct
{
uint16_t TIM_Prescaler;
uint16_t TIM_CounterMode;
uint16_t TIM_Period;
uint16_t TIM_ClockDivision;
uint8_t TIM_RepetitionCounter;
} TIM_TimeBaseInitTypeDef;
typedef struct
{
uint16_t TIM_OCMode;
uint16_t TIM_OutputState;
uint16_t TIM_OutputNState;
uint16_t TIM_Pulse;
uint16_t TIM_OCPolarity;
uint16_t TIM_OCNPolarity;
uint16_t TIM_OCIdleState;
uint16_t TIM_OCNIdleState;
} TIM_OCInitTypeDef;
typedef struct
{
uint16_t TIM_Channel;
uint16_t TIM_ICPolarity;
uint16_t TIM_ICSelection;
uint16_t TIM_ICPrescaler;
uint16_t TIM_ICFilter;
} TIM_ICInitTypeDef;
typedef struct
{
uint16_t TIM_OSSRState;
uint16_t TIM_OSSIState;
uint16_t TIM_LOCKLevel;
uint16_t TIM_DeadTime;
uint16_t TIM_Break;
uint16_t TIM_BreakPolarity;
uint16_t TIM_AutomaticOutput;
} TIM_BDTRInitTypeDef;
#line 186 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 205 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 216 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 225 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 236 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 249 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 266 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 279 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 308 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 341 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 355 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 373 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 497 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 561 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 577 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 593 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 610 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 619 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 665 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 709 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 725 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 742 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 770 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 784 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 833 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 851 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 866 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 927 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 943 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 987 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
#line 1034 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_tim.h"
void TIM_DeInit(TIM_TypeDef* TIMx);
void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct);
void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct);
void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct);
void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct);
void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct);
void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);
void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState);
void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);
void TIM_GenerateEvent(TIM_TypeDef* TIMx, uint16_t TIM_EventSource);
void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM_DMABurstLength);
void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalState NewState);
void TIM_InternalClockConfig(TIM_TypeDef* TIMx);
void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource);
void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExternalCLKSource,
uint16_t TIM_ICPolarity, uint16_t ICFilter);
void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,
uint16_t ExtTRGFilter);
void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler,
uint16_t TIM_ExtTRGPolarity, uint16_t ExtTRGFilter);
void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint16_t TIM_ExtTRGPolarity,
uint16_t ExtTRGFilter);
void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t TIM_PSCReloadMode);
void TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode);
void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTriggerSource);
void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderMode,
uint16_t TIM_IC1Polarity, uint16_t TIM_IC2Polarity);
void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);
void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);
void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);
void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction);
void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);
void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState);
void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState);
void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState);
void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);
void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);
void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);
void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast);
void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);
void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);
void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);
void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear);
void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity);
void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity);
void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity);
void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity);
void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx);
void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN);
void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_OCMode);
void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState);
void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource);
void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState);
void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode);
void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource);
void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode);
void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSlaveMode);
void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter);
void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload);
void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1);
void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2);
void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3);
void TIM_SetCompare4(TIM_TypeDef* TIMx, uint16_t Compare4);
void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC);
void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD);
uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx);
uint16_t TIM_GetCapture2(TIM_TypeDef* TIMx);
uint16_t TIM_GetCapture3(TIM_TypeDef* TIMx);
uint16_t TIM_GetCapture4(TIM_TypeDef* TIMx);
uint16_t TIM_GetCounter(TIM_TypeDef* TIMx);
uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx);
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);
#line 48 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_usart.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_usart.h"
typedef struct
{
uint32_t USART_BaudRate;
uint16_t USART_WordLength;
uint16_t USART_StopBits;
uint16_t USART_Parity;
uint16_t USART_Mode;
uint16_t USART_HardwareFlowControl;
} USART_InitTypeDef;
typedef struct
{
uint16_t USART_Clock;
uint16_t USART_CPOL;
uint16_t USART_CPHA;
uint16_t USART_LastBit;
} USART_ClockInitTypeDef;
#line 146 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_usart.h"
#line 160 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_usart.h"
#line 187 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_usart.h"
#line 264 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_usart.h"
#line 336 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_usart.h"
#line 344 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_usart.h"
void USART_DeInit(USART_TypeDef* USARTx);
void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct);
void USART_StructInit(USART_InitTypeDef* USART_InitStruct);
void USART_ClockInit(USART_TypeDef* USARTx, USART_ClockInitTypeDef* USART_ClockInitStruct);
void USART_ClockStructInit(USART_ClockInitTypeDef* USART_ClockInitStruct);
void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState);
void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, FunctionalState NewState);
void USART_DMACmd(USART_TypeDef* USARTx, uint16_t USART_DMAReq, FunctionalState NewState);
void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address);
void USART_WakeUpConfig(USART_TypeDef* USARTx, uint16_t USART_WakeUp);
void USART_ReceiverWakeUpCmd(USART_TypeDef* USARTx, FunctionalState NewState);
void USART_LINBreakDetectLengthConfig(USART_TypeDef* USARTx, uint16_t USART_LINBreakDetectLength);
void USART_LINCmd(USART_TypeDef* USARTx, FunctionalState NewState);
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data);
uint16_t USART_ReceiveData(USART_TypeDef* USARTx);
void USART_SendBreak(USART_TypeDef* USARTx);
void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime);
void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler);
void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState);
void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewState);
void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState);
void USART_OverSampling8Cmd(USART_TypeDef* USARTx, FunctionalState NewState);
void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState);
void USART_IrDAConfig(USART_TypeDef* USARTx, uint16_t USART_IrDAMode);
void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState);
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG);
void USART_ClearFlag(USART_TypeDef* USARTx, uint16_t USART_FLAG);
ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT);
void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT);
#line 49 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_wwdg.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_wwdg.h"
#line 68 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\stm32f10x_wwdg.h"
void WWDG_DeInit(void);
void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);
void WWDG_SetWindowValue(uint8_t WindowValue);
void WWDG_EnableIT(void);
void WWDG_SetCounter(uint8_t Counter);
void WWDG_Enable(uint8_t Counter);
FlagStatus WWDG_GetFlagStatus(void);
void WWDG_ClearFlag(void);
#line 50 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 1 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\misc.h"
#line 33 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\misc.h"
typedef struct
{
uint8_t NVIC_IRQChannel;
uint8_t NVIC_IRQChannelPreemptionPriority;
uint8_t NVIC_IRQChannelSubPriority;
FunctionalState NVIC_IRQChannelCmd;
} NVIC_InitTypeDef;
#line 133 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\misc.h"
#line 151 "..\\..\\template\\Libraries\\STM32F10x_StdPeriph_Driver\\inc\\misc.h"
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);
void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState);
void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource);
#line 51 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 74 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x_conf.h"
#line 8298 "..\\..\\template\\Libraries\\CMSIS\\stm32f10x.h"
#line 2 "..\\user\\src\\LCD.c"
#line 3 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\usart.h"
extern void Send_byte_usart1(char date);
extern void Send_byte_usart2(char date);
extern void Send_TString_LCD(unsigned char* sll, unsigned short num);
extern void Send_string_Ye(unsigned char *sl, unsigned short num);
extern void Send_string_GPS(unsigned char *sl);
extern void Send_string_BLENamb(unsigned char *sl);
extern void Send_string_BLEReset(unsigned char *sl);
extern void Send_TString_GPS(unsigned char* sll,unsigned short num);
extern void Send_string_BMS_TT(unsigned char *sl);
extern void Rs485TietaDataSend(unsigned char* sll,unsigned short num);
#line 5 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\delay.h"
#line 5 "..\\user\\inc\\delay.h"
void Delay_init(void);
void Delay_us(u32 nus);
void Delay_ms(u32 nms);
void delay_ms(u16 time);
#line 6 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\485.h"
#line 5 "..\\user\\inc\\485.h"
typedef struct
{
u8 erro_data;
u8 Kaiguan[52];
u8 Anal_Type;
union
{
u16 monis[42];
struct
{
u16 Total_VOl;
u16 Cores_num;
u16 Pow_SOC;
u16 Res_Capa;
u16 SOH;
u16 Chg_Curr;
s16 Ambi_Tmp;
s16 Cores_Tmp;
s16 Card_Tmp;
u16 Cores_Vol_1;
u16 Cores_Vol_2;
u16 Cores_Vol_3;
u16 Cores_Vol_4;
u16 Cores_Vol_5;
u16 Cores_Vol_6;
u16 Cores_Vol_7;
u16 Cores_Vol_8;
u16 Cores_Vol_9;
u16 Cores_Vol_10;
u16 Cores_Vol_11;
u16 Cores_Vol_12;
u16 Cores_Vol_13;
u16 Cores_Vol_14;
u16 Cores_Vol_15;
u16 Cores_Vol_16;
u16 Cores_Vol_17;
u16 Cores_Vol_18;
u16 Cores_Vol_19;
u16 Cores_Vol_20;
u16 Device_ID_1;
u16 Device_ID_2;
u16 Device_ID_3;
u16 Device_ID_4;
u16 Device_ID_5;
u16 Device_ID_6;
u16 Device_ID_7;
u16 Device_ID_8;
u16 Device_ID_9;
u16 Device_ID_10;
u16 Device_ID_11;
u16 Device_ID_12;
u16 Device_ID_13;
}Anal_quan;
}Anal_quanuion;
}BMS_TT;
extern BMS_TT Bms_tt_data;
extern unsigned char databuf[26];
extern unsigned char dataxingaobuf[26];
extern unsigned char ddataxingaobuf_last[28];
extern unsigned char dataxingaobufbufnum;
extern unsigned char dataxingaobufbuf_flag;
extern u8 Rev_Succe;
extern void Rs485PortSetNewBTCode(void);
extern void Rs485PortNWDataHandle(void);
#line 7 "..\\user\\src\\LCD.c"
#line 1 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdio.h"
#line 47 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdio.h"
typedef unsigned int size_t;
typedef struct __va_list __va_list;
typedef struct __fpos_t_struct {
unsigned __int64 __pos;
struct {
unsigned int __state1, __state2;
} __mbstate;
} fpos_t;
typedef struct __FILE FILE;
#line 136 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdio.h"
extern FILE __stdin, __stdout, __stderr;
extern FILE *__aeabi_stdin, *__aeabi_stdout, *__aeabi_stderr;
#line 166 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdio.h"
extern __declspec(__nothrow) int remove(const char * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int rename(const char * , const char * ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) FILE *tmpfile(void);
extern __declspec(__nothrow) char *tmpnam(char * );
extern __declspec(__nothrow) int fclose(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int fflush(FILE * );
extern __declspec(__nothrow) FILE *fopen(const char * __restrict ,
const char * __restrict ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) FILE *freopen(const char * __restrict ,
const char * __restrict ,
FILE * __restrict ) __attribute__((__nonnull__(2,3)));
extern __declspec(__nothrow) void setbuf(FILE * __restrict ,
char * __restrict ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int setvbuf(FILE * __restrict ,
char * __restrict ,
int , size_t ) __attribute__((__nonnull__(1)));
#pragma __printf_args
extern __declspec(__nothrow) int fprintf(FILE * __restrict ,
const char * __restrict , ...) __attribute__((__nonnull__(1,2)));
#pragma __printf_args
extern __declspec(__nothrow) int _fprintf(FILE * __restrict ,
const char * __restrict , ...) __attribute__((__nonnull__(1,2)));
#pragma __printf_args
extern __declspec(__nothrow) int printf(const char * __restrict , ...) __attribute__((__nonnull__(1)));
#pragma __printf_args
extern __declspec(__nothrow) int _printf(const char * __restrict , ...) __attribute__((__nonnull__(1)));
#pragma __printf_args
extern __declspec(__nothrow) int sprintf(char * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2)));
#pragma __printf_args
extern __declspec(__nothrow) int _sprintf(char * __restrict , const char * __restrict , ...) __attribute__((__nonnull__(1,2)));
#pragma __printf_args
extern __declspec(__nothrow) int __ARM_snprintf(char * __restrict , size_t ,
const char * __restrict , ...) __attribute__((__nonnull__(3)));
#pragma __printf_args
extern __declspec(__nothrow) int snprintf(char * __restrict , size_t ,
const char * __restrict , ...) __attribute__((__nonnull__(3)));
#pragma __printf_args
extern __declspec(__nothrow) int _snprintf(char * __restrict , size_t ,
const char * __restrict , ...) __attribute__((__nonnull__(3)));
#pragma __scanf_args
extern __declspec(__nothrow) int fscanf(FILE * __restrict ,
const char * __restrict , ...) __attribute__((__nonnull__(1,2)));
#pragma __scanf_args
extern __declspec(__nothrow) int _fscanf(FILE * __restrict ,
const char * __restrict , ...) __attribute__((__nonnull__(1,2)));
#pragma __scanf_args
extern __declspec(__nothrow) int scanf(const char * __restrict , ...) __attribute__((__nonnull__(1)));
#pragma __scanf_args
extern __declspec(__nothrow) int _scanf(const char * __restrict , ...) __attribute__((__nonnull__(1)));
#pragma __scanf_args
extern __declspec(__nothrow) int sscanf(const char * __restrict ,
const char * __restrict , ...) __attribute__((__nonnull__(1,2)));
#pragma __scanf_args
extern __declspec(__nothrow) int _sscanf(const char * __restrict ,
const char * __restrict , ...) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int vfscanf(FILE * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int vscanf(const char * __restrict , __va_list) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int vsscanf(const char * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int _vfscanf(FILE * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int _vscanf(const char * __restrict , __va_list) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int _vsscanf(const char * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int __ARM_vsscanf(const char * __restrict , const char * __restrict , __va_list) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int vprintf(const char * __restrict , __va_list ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int _vprintf(const char * __restrict , __va_list ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int vfprintf(FILE * __restrict ,
const char * __restrict , __va_list ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int vsprintf(char * __restrict ,
const char * __restrict , __va_list ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int __ARM_vsnprintf(char * __restrict , size_t ,
const char * __restrict , __va_list ) __attribute__((__nonnull__(3)));
extern __declspec(__nothrow) int vsnprintf(char * __restrict , size_t ,
const char * __restrict , __va_list ) __attribute__((__nonnull__(3)));
extern __declspec(__nothrow) int _vsprintf(char * __restrict ,
const char * __restrict , __va_list ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int _vfprintf(FILE * __restrict ,
const char * __restrict , __va_list ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int _vsnprintf(char * __restrict , size_t ,
const char * __restrict , __va_list ) __attribute__((__nonnull__(3)));
#pragma __printf_args
extern __declspec(__nothrow) int asprintf(char ** , const char * __restrict , ...) __attribute__((__nonnull__(2)));
extern __declspec(__nothrow) int vasprintf(char ** , const char * __restrict , __va_list ) __attribute__((__nonnull__(2)));
#pragma __printf_args
extern __declspec(__nothrow) int __ARM_asprintf(char ** , const char * __restrict , ...) __attribute__((__nonnull__(2)));
extern __declspec(__nothrow) int __ARM_vasprintf(char ** , const char * __restrict , __va_list ) __attribute__((__nonnull__(2)));
extern __declspec(__nothrow) int fgetc(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) char *fgets(char * __restrict , int ,
FILE * __restrict ) __attribute__((__nonnull__(1,3)));
extern __declspec(__nothrow) int fputc(int , FILE * ) __attribute__((__nonnull__(2)));
extern __declspec(__nothrow) int fputs(const char * __restrict , FILE * __restrict ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int getc(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int (getchar)(void);
extern __declspec(__nothrow) char *gets(char * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int putc(int , FILE * ) __attribute__((__nonnull__(2)));
extern __declspec(__nothrow) int (putchar)(int );
extern __declspec(__nothrow) int puts(const char * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int ungetc(int , FILE * ) __attribute__((__nonnull__(2)));
extern __declspec(__nothrow) size_t fread(void * __restrict ,
size_t , size_t , FILE * __restrict ) __attribute__((__nonnull__(1,4)));
extern __declspec(__nothrow) size_t __fread_bytes_avail(void * __restrict ,
size_t , FILE * __restrict ) __attribute__((__nonnull__(1,3)));
extern __declspec(__nothrow) size_t fwrite(const void * __restrict ,
size_t , size_t , FILE * __restrict ) __attribute__((__nonnull__(1,4)));
extern __declspec(__nothrow) int fgetpos(FILE * __restrict , fpos_t * __restrict ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int fseek(FILE * , long int , int ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int fsetpos(FILE * __restrict , const fpos_t * __restrict ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) long int ftell(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) void rewind(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) void clearerr(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int feof(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) int ferror(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) void perror(const char * );
extern __declspec(__nothrow) int _fisatty(FILE * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) void __use_no_semihosting_swi(void);
extern __declspec(__nothrow) void __use_no_semihosting(void);
#line 1021 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdio.h"
#line 9 "..\\user\\src\\LCD.c"
#line 1 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
#line 38 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
typedef unsigned int size_t;
#line 54 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
extern __declspec(__nothrow) void *memcpy(void * __restrict ,
const void * __restrict , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void *memmove(void * ,
const void * , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) char *strcpy(char * __restrict , const char * __restrict ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) char *strncpy(char * __restrict , const char * __restrict , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) char *strcat(char * __restrict , const char * __restrict ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) char *strncat(char * __restrict , const char * __restrict , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int memcmp(const void * , const void * , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int strcmp(const char * , const char * ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int strncmp(const char * , const char * , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int strcasecmp(const char * , const char * ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int strncasecmp(const char * , const char * , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) int strcoll(const char * , const char * ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) size_t strxfrm(char * __restrict , const char * __restrict , size_t ) __attribute__((__nonnull__(2)));
#line 193 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
extern __declspec(__nothrow) void *memchr(const void * , int , size_t ) __attribute__((__nonnull__(1)));
#line 209 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
extern __declspec(__nothrow) char *strchr(const char * , int ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) size_t strcspn(const char * , const char * ) __attribute__((__nonnull__(1,2)));
#line 232 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
extern __declspec(__nothrow) char *strpbrk(const char * , const char * ) __attribute__((__nonnull__(1,2)));
#line 247 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
extern __declspec(__nothrow) char *strrchr(const char * , int ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) size_t strspn(const char * , const char * ) __attribute__((__nonnull__(1,2)));
#line 270 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
extern __declspec(__nothrow) char *strstr(const char * , const char * ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) char *strtok(char * __restrict , const char * __restrict ) __attribute__((__nonnull__(2)));
extern __declspec(__nothrow) char *_strtok_r(char * , const char * , char ** ) __attribute__((__nonnull__(2,3)));
extern __declspec(__nothrow) char *strtok_r(char * , const char * , char ** ) __attribute__((__nonnull__(2,3)));
extern __declspec(__nothrow) void *memset(void * , int , size_t ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) char *strerror(int );
extern __declspec(__nothrow) size_t strlen(const char * ) __attribute__((__nonnull__(1)));
extern __declspec(__nothrow) size_t strlcpy(char * , const char * , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) size_t strlcat(char * , const char * , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitcpybl(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitcpybb(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitcpyhl(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitcpyhb(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitcpywl(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitcpywb(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitmovebl(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitmovebb(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitmovehl(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitmovehb(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitmovewl(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
extern __declspec(__nothrow) void _membitmovewb(void * , const void * , int , int , size_t ) __attribute__((__nonnull__(1,2)));
#line 502 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\string.h"
#line 10 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\gpsnet.h"
#line 5 "..\\user\\inc\\gpsnet.h"
#line 20 "..\\user\\inc\\gpsnet.h"
#line 44 "..\\user\\inc\\gpsnet.h"
#line 101 "..\\user\\inc\\gpsnet.h"
typedef struct
{
u8 gps_Rev_start;
u8 gps_Rev_buf[355];
u16 gps_Rev_buftmp;
}GPS_Buf;
typedef struct
{
u16 start_frame;
u16 Len_frame;
u32 Bms_number;
u8 orde;
u8 farm_sor;
u8 Type;
u8 s_data[400];
u32 Recnumber;
u8 end_signs;
u32 check_sum;
}Data_frame;
typedef struct
{
struct
{
u8 socdd;
u8 mostmp;
u8 chggvol;
u8 outqvol;
u8 cellgtmp;
u8 chgcurr;
u8 outcurr;
u8 singvol;
u8 cellneitmp;
u8 celldtmp;
u8 Dchggvol;
u8 Doutqvol;
}strtu;
struct
{
u32 CellTime;
u8 sturt;
u8 xinhao[9];
u8 Singcellvol[32][3];
u16 MosTmp;
u16 QualiTmp;
u16 CellTmp;
u16 CellZvol;
u16 Currdata;
u8 Soc;
u8 CellTmpSors;
u16 Cellusnum;
u16 Bms_rl;
u32 CellOutrl;
u16 CellZnum;
u16 CellhitData;
u16 CellStrtu;
u16 Hitjlm;
}Rev_data;
struct
{
u16 ZvolG;
u16 ZvolQ;
u16 SingvolG;
u16 SingvolGH;
u16 SingvolGtime;
u16 SingvolQ;
u16 SingvolQH;
u16 SingvolQtime;
u16 CellXyc;
u16 OutcurrG;
u16 OutcurrGtime;
u16 ChgcurrG;
u16 ChgcurrGtime;
u16 Equalivol;
u16 Equalivolcc;
u8 EqualiON;
u16 PowTmp;
u16 PowTmpH;
u16 Equaltmpb;
u16 EqualtmpH;
u16 CellTmp;
u16 CellChgTmpG;
u16 CellChgTmpGH;
u16 CellOutTmpG;
u16 CellOutTmpGH;
s16 ChgTmpD;
s16 ChgTmpDH;
s16 OutTmpD;
s16 OutTmpDH;
u8 Cellnum;
u32 CellRl;
u8 ChgMOS;
u8 OutMOS;
u16 CurrJZ;
u8 BHBAddr;
u8 Celltype;
u16 SleepTime;
u8 DRLNum;
u8 Pass[10];
u8 ZChgON;
u8 EquID[8];
u8 CCDat[4];
u32 SysTime;
u8 soft_num[15];
u8 CurrjzONOFF;
u32 Reali_Q;
u8 XID[24];
u8 rest_xt;
u8 rest_hf;
u16 GpsDVol;
u16 GpsDVolH;
u8 ShiduKaiguan;
u8 ShiduValueNow;
u8 ShiduValueProtect;
u8 ShortCurValue;
u16 ShortCurDelay;
u16 EnableSwitch;
u16 CellOUT2CURR_G;
u16 CellOUT2TIME_G;
u16 CellDRLBEEP_Jiao;
}RevWrite_data;
}GPS_DATA;
typedef struct
{
u16 AZvolG;
u16 AZvolGH;
u16 AZvolQ;
u16 AZvolQH;
u16 ASingvolG;
u16 ASingvolGH;
u16 ASingvolQ;
u16 ASingvolQH;
u16 ACellXyc;
u16 ACellXycH;
u16 AOutcurrG;
u16 AOutcurrGH;
u16 AChgcurrG;
u16 AChgcurrGH;
u16 APowTmp;
u16 APowTmpH;
u16 AEqualtmp;
u16 AEqualtmpH;
u16 ACellTmp;
u16 ACellTmpH;
u16 ACellChgTmpG;
u16 ACellChgTmpGH;
u16 ACellOutTmpG;
u16 ACellOutTmpGH;
s16 AChgTmpD;
s16 AChgTmpDH;
s16 AOutTmpD;
s16 AOutTmpDH;
u8 ADRLNum2;
u16 Alarm1_Flg;
u16 Alarm2_Flg;
}RevWrite_Alarm_Data;
typedef struct
{
u16 ZvolGH;
u16 ZvolQH;
u16 SingvolG2;
u16 SingvolGH2;
u16 SingvolGtime2;
u16 SingvolQ2;
u16 SingvolQH2;
u16 SingvolQtime2;
u16 CellXycH;
u16 ChgcurrG2;
u16 ChgcurrGtime2;
u16 CellTmpH;
u32 OutCurrJZ;
u8 OutCurrjzONOFF;
u8 ZvolG_Flg;
u8 ZvolQ_Flg;
u16 Prptection1_Flg;
u16 Prptection2_Flg;
}RevWrite_Pt_Data;
typedef struct
{
u8 Singcell_Vol[32][3];
u16 Cmos_Tmp;
u16 Pmos_Tmp;
u16 Quali_Tmp;
u16 Cell_Tmp[8];
u16 Cell_Zvol;
u16 Curr_Data;
u16 Prptection1_Dat;
u16 Prptection2_Dat;
u16 Prptection1_Hdat;
u16 Prptection2_Hdat;
u8 Prptection_Num;
u8 Prptection_Count;
}Rev_Err_Data;
typedef struct
{
u8 bits_1[32];
u8 bits_2[32];
u8 bits_11[32];
u8 bits_3;
u8 bits_4;
u8 bits_3_2;
u8 bits_4_2;
u16 bits_1_cont_s[32];
u16 bits_2_cont_s[32];
u16 bits_11_cont_s[32];
u16 bits_3_cont_s;
u16 bits_4_cont_s;
u16 bits_3_2_cont_s;
u16 bits_4_2_cont_s;
u8 bits_4180[32];
u8 bits_3500[32];
u16 bits_4180_cont_s[32];
u16 bits_3500_cont_s[32];
}OVER_Time_Struct;
extern unsigned char soft_num_ZF[16];
extern GPS_Buf gps_buf;
extern GPS_Buf gps_buf_2;
extern GPS_Buf JDY33_buf;
extern GPS_DATA gps_data;
extern OVER_Time_Struct Over_time;
extern OVER_Time_Struct Vol4180_Over_time;
extern OVER_Time_Struct Vol3500_Over_time;
extern RevWrite_Alarm_Data Ala_Data;
extern RevWrite_Pt_Data Pt_Data;
extern Rev_Err_Data Err_Data;
extern u8 stopstart_309Flag;
extern unsigned char Pass_init[7];
extern unsigned char Pass_init_Lase[7];
extern unsigned char Pass_CJ[7];
extern unsigned char Pass_bit;
extern void Send_GpsFun(u32 bmsnum,u8 orde,u8 type,u8 *buff,u16 len,u32 Recnumber);
extern void NwDataHandle(GPS_Buf *gps_buf);
extern void GpsPortNwDataHandle(void);
extern void JDYPortNwDataHandle(void);
extern void JDYNAMBSet(void);
extern u8 Uart1NWDataFlag;
extern u8 Uart2NWDataFlag;
extern u8 Uart3NWDataFlag;
extern u8 Uart1TTDataFlag;
extern u8 Uart2TTDataFlag;
extern u8 BLE_JDY_FLAG;
extern u8 Uart1NW_GPS_StopFlag;
extern u32 Uart1NW_GPS_StopTimeCount;
extern u8 Alarm_SendFlag;
extern u8 Alarm_GPS_2M;
extern u32 TT_delay_Count;
extern u8 TT_delay_flag;
extern u8 Ble_TX_Control;
#line 12 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\flash.h"
#line 2 "..\\user\\inc\\flash.h"
extern void flash_read_sys_flag(void);
extern void flash_write_sys_flag(unsigned char write_unm);
extern void flash_write_sys_flag_ALL(void);
extern void flash_write_sys_flag_Init(void);
extern void flash_write_sys_flag_Zvol(void);
extern void flash_write_sys_flag_ALL_Init(void);
extern void Flash_Write_Err_Flag2(unsigned char write_unm);
extern u16 Over_Vol_Readflash;
extern u16 Down_Vol_Readflash;
extern u16 SOH_Readflash;
#line 13 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\gpioinit.h"
extern void base_gpio(void);
extern void IIC_1_Init(unsigned char type);
#line 14 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\datahand.h"
#line 5 "..\\user\\inc\\datahand.h"
extern u8 Chg_Flag;
extern u8 Out_flag;
extern u8 Chg_Lock;
extern u8 Out_Lock;
extern u8 Cell_Soc;
extern float IntVolume;
extern float OutSOC_xs;
extern float ChgSOC_xs;
extern float SOH_xs;
extern float Q_hs;
extern u16 Cell_usnum;
extern u32 Cell_Outrl;
extern u8 Off_lint;
extern u8 Out_Dea;
extern u8 Chg_Dea;
extern u8 Cell_Tmp;
extern u8 Pow_Tmp;
extern u8 Chg_Moshit;
extern u8 Out_Moshit;
extern float Curr_Res;
extern float Curr_Out_Res;
extern u8 OverVolThenSetSoc100Flag;
extern u8 FirstStart;
extern u8 FirstStart_OV;
extern u8 FirstSOC;
extern u8 FirstSOC_Count;
extern u8 ChgMos_bit_last;
extern u8 ChgMos_bit;
extern u8 OutMos_bit_last;
extern u8 OutMos_bit;
extern u16 Out_curr;
extern u8 SOCinit;
extern u8 SOCinit_bit;
extern u16 Hitsturt;
extern u8 HitFlag;
extern u8 Hitsturt_2;
extern u8 Hitsturt_22;
extern u8 HitFlag_22;
extern u8 dgpow_bit;
extern u8 dgpow_Time_1;
extern u8 dgpow_count;
extern u8 dgPowL_TC;
extern u8 tX_bit;
extern u8 LED_1_bit;
extern u8 LED_2_bit;
extern u16 cell_vol_max;
extern u16 cell_vol_min;
extern u16 cell_vol_num;
extern u8 cellmaxnum;
extern u8 cellminnum;
extern u16 ZeroCur_minute;
extern u8 flag_485;
extern u8 GpsHaveDateFlag;
extern u8 CheckCurIsZero(void);
extern u8 Init_SOC_8S;
extern u8 Init_SOC_8S_flag;
extern u16 Cores_Vol[32];
extern u8 ZhuDAlarm_Flag;
extern s16 Cell_MT_Temp_MAX;
extern s16 Cell_MT_Temp_Min;
extern s16 Cell_MT_Temp_AVR;
extern u8 Cell_MT_Temp_MAX_Num;
extern u8 Cell_MT_Temp_Min_Num;
extern void data309_485_GPS_handelFun(void);
extern u16 HDCurr_num;
extern u8 ZeroCur5Min;
extern u8 HDCurr_Flag;
extern void Shut309DSGMos(void);
extern void Shut309CHGMos(void);
extern void Free309DSGMos(void);
extern void Free309CHGMos(void);
extern u16 g_SysMilliSecCnt;
extern u8 OverVolFlag;
extern u8 LowVolFlag;
extern u8 Vol4160Flag;
extern u8 Vol3500Flag;
extern u8 SpecChargerFlag;
extern u8 FirstStart;
extern u16 UartDataMsCnt;
extern u16 UartDataMsCnt2;
extern u16 UartDataTTCnt;
extern u16 UartDataMsCnt3;
extern u8 dahuo_flag;
extern u8 UartDataMsCntEnable;
extern u8 UartDataMsCntEnable2;
extern u8 UartDataTTCntEnable2;
extern u8 UartDataMsCntEnable3;
extern u8 OpenOrCloseChgMosCmd;
extern u8 OpenOrCloseDsgMosCmd;
extern u8 ChgMosBreakCnt;
extern u8 DsgMosBreakCnt;
extern u8 ShiDuFlag_OVER;
extern u8 GPS_Time_Start_Flag;
extern u8 GPS_LowPower_Flag;
extern u8 GPS_tongxin_Flag;
extern u16 GPS_TimeCnt;
extern u16 Sleep_Times;
extern u8 Balance_Flg;
extern u8 yc_timeflat;
extern s16 Bms_Dat_Cores_Tmp1;
extern s16 Bms_Dat_Cores_Tmp2;
extern s16 Bms_Dat_Pdsg_Tmp;
extern s16 Bms_Dat_Chg_Tmp;
extern s16 Bms_Dat_Dsg_Tmp;
extern u8 Bms_Chg_Det_Flag;
extern u8 P_Sleep_Flg;
extern u16 Sp_P_Sleep_Times;
extern u8 updataSOC(void);
extern u8 updataCell_0SOC(void);
extern signed int Get_Temp(u32 NTC_Res);
extern u8 ReadMosState(void);
extern void Software_Reset(void);
#line 15 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\IIc.h"
#line 5 "..\\user\\inc\\IIc.h"
#line 6 "..\\user\\inc\\IIc.h"
extern void MTPWrite_1(u8 SlaveID, u8 WrAddr, u8 WdBuf);
extern void MTPWrite_2(u8 SlaveID, u8 WrAddr, u8 WdBuf);
extern void MTPRead_1(u8 SlaveID, u8 RrAddr, u8 Length, u8 *RdBuf);
extern void MTPRead_2(u8 SlaveID, u8 RrAddr, u8 Length, u8 *RdBuf);
extern void ResetAFE_1(void);
extern void ResetAFE_2(void);
extern void MTPWrite_fun_1(u8 WrAddr, u8 Length, u8 *WrBuf);
extern void MTPRead_fun_1(u8 RdAddr, u8 Length, u8 *RdBuf);
extern void MTPWrite_fun_2(u8 WrAddr, u8 Length, u8 *WrBuf);
extern void MTPRead_fun_2(u8 RdAddr, u8 Length, u8 *RdBuf);
extern u8 AHTbuff[6];
extern u32 AHT_Tem;
extern u32 AHT_Hum;
extern void InitAHT10(void);
extern u16 ReadAHT10(void);
#line 16 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\Jdy_19.h"
typedef enum
{
JDY_VER = 0,
JDY_RST,
JDY_DISC,
JDY_MAC,
JDY_BAUD,
JDY_BOUD,
JDY_SLEEP,
JDY_NAME,
JDY_STARTEN,
JDY_ADVIN,
JDY_HOSTEN,
JDY_IBUUID,
JDY_MAJOR,
JDY_MINOR,
JDY_IBPWR,
JDY_DEFAULT,
JDY_NULL,
}JDY_19_CmdEum;
typedef struct
{
JDY_19_CmdEum eum;
char* cmd;
}JDY_Cmd;
typedef struct
{
unsigned int Jdy_globalTime;
char Buff[30];
unsigned char Rev_Index;
unsigned char Rev_Succe;
unsigned char Is_Ok;
unsigned char end_ok;
unsigned char start_ok;
}Jdy_Buff;
extern Jdy_Buff Jdybuffs;
extern char broad_name[];
extern char broad_name_last[9];
extern unsigned char broad_namenum;
extern unsigned char broad_name_flag;
extern void Jdy_Inde_Comfig(void);
extern void Perconfig(void);
extern void Rs485PortSetNewBleID(void);
#line 17 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\iobind.h"
#line 1 "..\\..\\nlib\\button/iobutton.h"
#line 1 "..\\..\\nlib\\button/iocontrol.h"
typedef struct
{
volatile unsigned int* inputIO;
volatile unsigned int* outputIO;
unsigned int validBit;
}IOControlInfo;
typedef struct
{
IOControlInfo* io[1];
unsigned int size;
}IOInfo;
extern IOInfo allIo;
extern void InitIO(IOControlInfo* io,
volatile unsigned int* input,
volatile unsigned int* output,
unsigned int validBit
);
#line 5 "..\\..\\nlib\\button/iobutton.h"
#line 1 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdBool.h"
#line 25 "C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdBool.h"
#line 6 "..\\..\\nlib\\button/iobutton.h"
typedef void(*btnFuc)(void*);
typedef struct
{
IOControlInfo io;
unsigned int judgeTime;
unsigned int timeout;
unsigned int ltimeout;
_Bool press;
_Bool lpress;
_Bool OnValid;
btnFuc pressFuc;
btnFuc releaseFuc;
btnFuc lpressFuc;
}IoButtonType;
extern void FInitButton(IoButtonType* btn);
extern _Bool isPress(IoButtonType* btn);
extern void FButtonTask(IoButtonType* btn);
#line 4 "..\\user\\inc\\iobind.h"
#line 5 "..\\user\\inc\\iobind.h"
extern IoButtonType Check[];
extern IOControlInfo SDA_1;
extern IOControlInfo SCL_1;
extern IOControlInfo SDA_2;
extern IOControlInfo SCL_2;
extern IOControlInfo SDA_3;
extern IOControlInfo SCL_3;
extern IOControlInfo VPRO_EN;
extern IOControlInfo SHIP_EN;
extern IOControlInfo GPRS_EN;
extern IOControlInfo BLE_EN;
extern IOControlInfo PDSG_EN;
extern IOControlInfo PF_ADC_EN;
extern IOControlInfo HOT_EN;
extern IOControlInfo COM_EN;
extern IOControlInfo POWER_EN;
extern IOControlInfo LED_1;
extern IOControlInfo LED_2;
extern IOControlInfo COM_WAKEUP;
extern IOControlInfo SW_IN;
extern IOControlInfo CHG_DET;
extern IOControlInfo DSG_CHG_WAKEUP;
extern _Bool All_Flag[4];
extern void InitAllIO(void);
extern void InputStructAssignment(void);
extern void FButtonTasks(void);
#line 18 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\SH367309.h"
#line 5 "..\\user\\inc\\SH367309.h"
#line 30 "..\\user\\inc\\SH367309.h"
#line 61 "..\\user\\inc\\SH367309.h"
typedef struct
{
struct
{
union
{
u8 datas;
struct
{
u8 cn3_cn0 :4;
u8 BAL :1;
u8 OCPM :1;
u8 ENMOS :1;
u8 ENPCH :1;
}bits;
}Sconf1;
union
{
u8 datas;
struct
{
u8 EUVR :1;
u8 OCRA :1;
u8 CTLC1_0 :2;
u8 DIS_PF :1;
u8 UV_OP :1;
u8 Res :1;
u8 E0VB :1;
}bits;
}Sconf2;
union
{
u16 datas;
struct
{
u16 OV9_0 :10;
u16 LDRT1_0 :2;
u16 OVT3_0 :4;
}bits;
}Ovh_ovl;
union
{
u16 datas;
struct
{
u16 OVR9_0 :10;
u16 Res :2;
u16 UVT3_0 :4;
}bits;
}Ovrh_ovrl;
u8 Uv;
u8 Uvr;
u8 Balv;
u8 Prev;
u8 Lov;
u8 Pfv;
union
{
u8 datas;
struct
{
u8 CD1T3_0 :4;
u8 OCD1V3_0 :4;
}bits;
}Ocd1V_ocd1t;
union
{
u8 datats;
struct
{
u8 OCD2T3_0 :4;
u8 OCD2V3_0 :4;
}bits;
}Ocd2V_ocd2t;
union
{
u8 datas;
struct
{
u8 SCT3_0 :4;
u8 SCV_3_0 :4;
}bits;
}Scv_sct;
union
{
u8 datas;
struct
{
u8 OCCT3_0 :4;
u8 OCCV3_0 :4;
}bits;
}Occv_occt;
union
{
u8 datas;
struct
{
u8 PFT1_0 :2;
u8 OCRT1_0 :2;
u8 MOST1_0 :2;
u8 CHS1_0 :2;
}bits;
}Most_ocrt_pft;
char Otc;
char Otcr;
char Utc;
char Utcr;
char Otd;
char Otdr;
char Utd;
char Utdr;
}EEPROMWridata;
struct
{
union
{
u8 datas;
struct
{
u8 cn3_cn0 :4;
u8 BAL :1;
u8 OCPM :1;
u8 ENMOS :1;
u8 ENPCH :1;
}bits;
}Sconf1;
union
{
u8 datas;
struct
{
u8 EUVR :1;
u8 OCRA :1;
u8 CTLC1_0 :2;
u8 DIS_PF :1;
u8 UV_OP :1;
u8 Res :1;
u8 E0VB :1;
}bits;
}Sconf2;
union
{
u16 datas;
struct
{
u16 OV9_0 :10;
u16 LDRT1_0 :2;
u16 OVT3_0 :4;
}bits;
}Ovh_ovl;
union
{
u16 datas;
struct
{
u16 OVR9_0 :10;
u16 Res :2;
u16 UVT3_0 :4;
}bits;
}Ovrh_ovrl;
u8 Uv;
u8 Uvr;
u8 Balv;
u8 Prev;
u8 Lov;
u8 Pfv;
union
{
u8 datas;
struct
{
u8 CD1T3_0 :4;
u8 OCD1V3_0 :4;
}bits;
}Ocd1V_ocd1t;
union
{
u8 datats;
struct
{
u8 OCD2T3_0 :4;
u8 OCD2V3_0 :4;
}bits;
}Ocd2V_ocd2t;
union
{
u8 datas;
struct
{
u8 SCT3_0 :4;
u8 SCV_3_0 :4;
}bits;
}Scv_sct;
union
{
u8 datas;
struct
{
u8 OCCT3_0 :4;
u8 OCCV3_0 :4;
}bits;
}Occv_occt;
union
{
u8 datas;
struct
{
u8 PFT1_0 :2;
u8 OCRT1_0 :2;
u8 MOST1_0 :2;
u8 CHS1_0 :2;
}bits;
}Most_ocrt_pft;
char Otc;
char Otcr;
char Utc;
char Utcr;
char Otd;
char Otdr;
char Utd;
char Utdr;
char Tr;
}EEPROMRevdata;
struct
{
union
{
u8 datas;
struct
{
u8 IDLE :1;
u8 SLEEP :1;
u8 ENWDT :1;
u8 CADCON :1;
u8 CHGMOS :1;
u8 DSGMOS :1;
u8 PCHMOS :1;
u8 OCRC :1;
}bits;
}Conf;
union
{
u16 datas;
struct
{
u16 CB1 :1;
u16 CB2 :1;
u16 CB3 :1;
u16 CB4 :1;
u16 CB5 :1;
u16 CB6 :1;
u16 CB7 :1;
u16 CB8 :1;
u16 CB9 :1;
u16 CB10 :1;
u16 CB11 :1;
u16 CB12 :1;
u16 CB13 :1;
u16 CB14 :1;
u16 CB15 :1;
u16 CB16 :1;
}bits;
}Balanceh_l;
union
{
u8 datas;
struct
{
u8 OV_FLG :1;
u8 UV_FLG :1;
u8 OCD_FLG :1;
u8 LOAD_FLG :1;
u8 OCC_FLG :1;
u8 SC_FLG :1;
u8 PF_FLG :1;
u8 WDT_FLG :1;
}bits;
}Bflag1;
union
{
u8 datas;
struct
{
u8 UTC_FLG :1;
u8 OTC_FLG :1;
u8 UTD_FLG :1;
u8 OTD_FLG :1;
u8 VADC_FLG :1;
u8 CADC_FLG :1;
u8 WAKE_FLG :1;
u8 RST_FLG :1;
}bits;
}Bflag2;
union
{
u8 datas;
struct
{
u8 WDT1_0 :2;
}bits;
}Rststat;
}RAM_Wridata;
struct
{
union
{
u8 datas;
struct
{
u8 IDLE :1;
u8 SLEEP :1;
u8 ENWDT :1;
u8 CADCON :1;
u8 CHGMOS :1;
u8 DSGMOS :1;
u8 PCHMOS :1;
u8 OCRC :1;
}bits;
}Conf;
union
{
u16 datas;
struct
{
u16 CB1 :1;
u16 CB2 :1;
u16 CB3 :1;
u16 CB4 :1;
u16 CB5 :1;
u16 CB6 :1;
u16 CB7 :1;
u16 CB8 :1;
u16 CB9 :1;
u16 CB10 :1;
u16 CB11 :1;
u16 CB12 :1;
u16 CB13 :1;
u16 CB14 :1;
u16 CB15 :1;
u16 CB16 :1;
}bits;
}Balanceh_l;
union
{
u8 datas;
struct
{
u8 OV :1;
u8 UV :1;
u8 OCD1 :1;
u8 OCD2 :1;
u8 OCC :1;
u8 SC :1;
u8 PF :1;
u8 WDT :1;
}bits;
}Bstrtus1;
union
{
u8 datas;
struct
{
u8 UTC :1;
u8 OTC :1;
u8 UTD :1;
u8 OTD :1;
u8 Ren :4;
}bits;
}Bstrtus2;
union
{
u8 datas;
struct
{
u8 DSG_FET :1;
u8 CHG_FET :1;
u8 PCHG_FET :1;
u8 L0V :1;
u8 EEPR_WR :1;
u8 Ren :1;
u8 DSGING :1;
u8 CHGING :1;
}bits;
}Bstrtus3;
u16 TEMP1h_l;
u16 TEMP2h_l;
u16 TEMP3h_l;
u16 Curh_l;
union
{
u16 cellvol[16];
struct
{
u16 cell1_vol;
u16 cell2_vol;
u16 cell3_vol;
u16 cell4_vol;
u16 cell5_vol;
u16 cell6_vol;
u16 cell7_vol;
u16 cell8_vol;
u16 cell9_vol;
u16 cell10_vol;
u16 cell11_vol;
u16 cell12_vol;
u16 cell13_vol;
u16 cell14_vol;
u16 cell15_vol;
u16 cell16_vol;
}cellbits;
}Cell;
u16 CADcdh_l;
union
{
u8 datas;
struct
{
u8 OV_FLG :1;
u8 UV_FLG :1;
u8 OCD_FLG :1;
u8 LOAD_FLG :1;
u8 OCC_FLG :1;
u8 SC_FLG :1;
u8 PF_FLG :1;
u8 WDT_FLG :1;
}bits;
}Bflag1;
union
{
u8 datas;
struct
{
u8 UTC_FLG :1;
u8 OTC_FLG :1;
u8 UTD_FLG :1;
u8 OTD_FLG :1;
u8 VADC_FLG :1;
u8 CADC_FLG :1;
u8 WAKE_FLG :1;
u8 RST_FLG :1;
}bits;
}Bflag2;
union
{
u8 datas;
struct
{
u8 WDT1_0 :2;
}bits;
}Rststat;
}RAM_Revdata;
}Data_309buf;
extern Data_309buf data_309_A;
extern Data_309buf data_309_B;
extern u16 Cur_Offset;
extern u8 Cur_Offset_Flg;
extern u8 Cell_Rl_Flg;
extern void RevResData(u8 num);
extern void MTPRead_fun_1(u8 RdAddr, u8 Length, u8 *RdBuf);
#line 19 "..\\user\\src\\LCD.c"
#line 1 "..\\user\\inc\\LCD.h"
#line 5 "..\\user\\inc\\LCD.h"
#line 109 "..\\user\\inc\\LCD.h"
#line 142 "..\\user\\inc\\LCD.h"
typedef struct
{
u8 G4_Rev_start;
u8 G4_Rev_buf[1024];
u16 G4_Rev_buftmp;
}G4_Buf;
extern G4_Buf LCD_Data_BUFF;
extern G4_Buf SIF_Data_BUFF;
extern u8 Login_Flag;
extern u8 Login_TimeFlag;
extern void LCD_Write();
extern void LCD_DataHandle(void);
#line 21 "..\\user\\src\\LCD.c"
G4_Buf LCD_Data_BUFF = {0};
G4_Buf SIF_Data_BUFF = {0};
u8 LCD_Data[1024] = {0};
u16 Count_I = 0;
u8 Alarm_Count = 0;
u8 LCD_Buff_GLoa[30] = {0};
u8 LCD_User_Pass[3] = {0x02, 0x00, 0x00};
u8 LCD_PassWord[3] = {0x00, 0x00, 0x00};
u8 Login_Flag = 0;
u8 Login_TimeFlag = 0;
unsigned char Ye[7] = {0xA5, 0x5A, 0x04, 0x80, 0x03, 0x00, 0x01};
unsigned char YeError[7] = {0xA5, 0x5A, 0x04, 0x80, 0x03, 0x00, 0x07};
u8 LCD_num_sconf = 0;
u8 LCD_SetACanshu = 0;
void LCD_Write()
{
u8 i = 0;
u8 Adress = 0;
u32 shengyu = 0;
u32 shengyu2 = 0;
u16 Current_P = 0;
s16 Current_N = 0;
u16 Power_Cur = 0;
u16 Power_Car = 0;
u8 Stu_Flag = 0;
Count_I = 0;
memset(LCD_Data, 0, sizeof(LCD_Data));
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x1B;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)(0x0100 >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0100);
Count_I++;
memcpy(&LCD_Data[Count_I], gps_data.RevWrite_data.XID, 24);
Count_I = Count_I + 24;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x06;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)(0x0130 >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0130);
Count_I++;
if(gps_data.Rev_data.CellStrtu & 0x0001)
{
LCD_Data[Count_I] = 0x4F;
Count_I++;
LCD_Data[Count_I] = 0x4E;
Count_I++;
LCD_Data[Count_I] = 0x20;
Count_I++;
}
else
{
LCD_Data[Count_I] = 0x4F;
Count_I++;
LCD_Data[Count_I] = 0x46;
Count_I++;
LCD_Data[Count_I] = 0x46;
Count_I++;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x06;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)(0x0140 >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0140);
Count_I++;
if(gps_data.Rev_data.CellStrtu & 0x0002)
{
LCD_Data[Count_I] = 0x4F;
Count_I++;
LCD_Data[Count_I] = 0x4E;
Count_I++;
LCD_Data[Count_I] = 0x20;
Count_I++;
}
else
{
LCD_Data[Count_I] = 0x4F;
Count_I++;
LCD_Data[Count_I] = 0x46;
Count_I++;
LCD_Data[Count_I] = 0x46;
Count_I++;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x06;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)(0x0150 >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0150);
Count_I++;
if(gps_data.Rev_data.CellStrtu & 0x0004)
{
LCD_Data[Count_I] = 0x4F;
Count_I++;
LCD_Data[Count_I] = 0x4E;
Count_I++;
LCD_Data[Count_I] = 0x20;
Count_I++;
}
else
{
LCD_Data[Count_I] = 0x4F;
Count_I++;
LCD_Data[Count_I] = 0x46;
Count_I++;
LCD_Data[Count_I] = 0x46;
Count_I++;
}
for(i = 0; i < 16; i++)
{
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0195 + Adress) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0195 + Adress);
Count_I++;
LCD_Data[Count_I] = gps_data.Rev_data.Singcellvol[i][1];
Count_I++;
LCD_Data[Count_I] = gps_data.Rev_data.Singcellvol[i][2];
Count_I++;
Adress = Adress + 2;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x02A2) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x02A2);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.Rev_data.CellZnum >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)gps_data.Rev_data.CellZnum;
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0282) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0282);
Count_I++;
if(gps_data.RevWrite_data.Celltype == 0)
{
LCD_Data[Count_I] = (u8)(0);
Count_I++;
LCD_Data[Count_I] = 0x02;
Count_I++;
}
else if(gps_data.RevWrite_data.Celltype == 1)
{
LCD_Data[Count_I] = (u8)(0);
Count_I++;
LCD_Data[Count_I] = 0x01;
Count_I++;
}
else if(gps_data.RevWrite_data.Celltype == 2)
{
LCD_Data[Count_I] = (u8)(0);
Count_I++;
LCD_Data[Count_I] = 0x03;
Count_I++;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x07;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0396) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0396);
Count_I++;
LCD_Data[Count_I] = 0x53;
Count_I++;
LCD_Data[Count_I] = 0x4F;
Count_I++;
LCD_Data[Count_I] = 0x43;
Count_I++;
LCD_Data[Count_I] = 0x3A;
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x04;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x039A) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x039A);
Count_I++;
LCD_Data[Count_I] = 0x25;
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x018F) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x018F);
Count_I++;
LCD_Data[Count_I] = (u8)(cell_vol_max >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)cell_vol_max;
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0191) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0191);
Count_I++;
LCD_Data[Count_I] = (u8)(cell_vol_min >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)cell_vol_min;
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0193) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0193);
Count_I++;
LCD_Data[Count_I] = (u8)((cell_vol_max - cell_vol_min) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(cell_vol_max - cell_vol_min);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0187) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0187);
Count_I++;
LCD_Data[Count_I] = (u8)((Bms_tt_data.Anal_quanuion.Anal_quan.Ambi_Tmp) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(Bms_tt_data.Anal_quanuion.Anal_quan.Ambi_Tmp);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0189) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0189);
Count_I++;
LCD_Data[Count_I] = (u8)((Bms_tt_data.Anal_quanuion.Anal_quan.Cores_Tmp) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(Bms_tt_data.Anal_quanuion.Anal_quan.Cores_Tmp);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x018B) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x018B);
Count_I++;
LCD_Data[Count_I] = (u8)((Bms_tt_data.Anal_quanuion.Anal_quan.Card_Tmp) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(Bms_tt_data.Anal_quanuion.Anal_quan.Card_Tmp);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x018D) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x018D);
Count_I++;
LCD_Data[Count_I] = 0;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ShiduValueNow);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0181) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0181);
Count_I++;
LCD_Data[Count_I] = (u8)(Bms_tt_data.Anal_quanuion.Anal_quan.SOH >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(Bms_tt_data.Anal_quanuion.Anal_quan.SOH);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x01C5) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x01C5);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.Rev_data.Soc);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x02A0) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x02A0);
Count_I++;
LCD_Data[Count_I] = (u8)((gps_data.RevWrite_data.CellRl * 10) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellRl * 10);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0183) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0183);
Count_I++;
shengyu = (gps_data.Rev_data.Soc) * gps_data.RevWrite_data.CellRl;
shengyu2 = shengyu / 10;
LCD_Data[Count_I] = (u8)(shengyu2 >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(shengyu2);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x01D0) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x01D0);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.Rev_data.Cellusnum >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.Rev_data.Cellusnum);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x017F) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x017F);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.Rev_data.CellZvol >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.Rev_data.CellZvol);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x017B) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x017B);
Count_I++;
if(gps_data.Rev_data.Currdata > 10000)
{
Stu_Flag = 2;
Current_N = (10000 - gps_data.Rev_data.Currdata) / 10;
Power_Cur = (gps_data.Rev_data.Currdata - 10000) / 100;
LCD_Data[Count_I] = (u8)(Current_N >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(Current_N);
Count_I++;
}
else if(gps_data.Rev_data.Currdata == 10000)
{
Stu_Flag = 3;
Current_N = 0;
Power_Cur = 0;
LCD_Data[Count_I] = (u8)(Current_N >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(Current_N);
Count_I++;
}
else if(gps_data.Rev_data.Currdata < 10000)
{
Stu_Flag = 1;
Current_P = (10000 - gps_data.Rev_data.Currdata) / 10;
Power_Cur = (10000 - gps_data.Rev_data.Currdata) / 100;
LCD_Data[Count_I] = (u8)(Current_P >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(Current_P);
Count_I++;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0281) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0281);
Count_I++;
LCD_Data[Count_I] = (u8)(0);
Count_I++;
LCD_Data[Count_I] = (u8)(Stu_Flag);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x017D) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x017D);
Count_I++;
Power_Car = Power_Cur * (gps_data.Rev_data.CellZvol / 100) / 10;
LCD_Data[Count_I] = (u8)(Power_Car >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(Power_Car);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0283) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0283);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
if(gps_data.Rev_data.CellhitData & 0x0001 && Alarm_Count == 0)
{
LCD_Data[Count_I] = 0x01;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0002 && Alarm_Count == 1)
{
LCD_Data[Count_I] = 0x02;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0010 && Alarm_Count == 2)
{
LCD_Data[Count_I] = 0x03;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0100 && Alarm_Count == 3)
{
LCD_Data[Count_I] = 0x04;
Count_I++;
}
else
{
LCD_Data[Count_I] = 0x00;
Count_I++;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0284) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0284);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
if(gps_data.Rev_data.CellhitData & 0x0004 && Alarm_Count == 0)
{
LCD_Data[Count_I] = 0x01;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0008 && Alarm_Count == 1)
{
LCD_Data[Count_I] = 0x02;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0200 && Alarm_Count == 2)
{
LCD_Data[Count_I] = 0x03;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0080 && Alarm_Count == 3)
{
LCD_Data[Count_I] = 0x04;
Count_I++;
}
else
{
LCD_Data[Count_I] = 0x00;
Count_I++;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0285) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0285);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
if(gps_data.Rev_data.CellhitData & 0x0020 && Alarm_Count == 0)
{
LCD_Data[Count_I] = 0x01;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0040 && Alarm_Count == 1)
{
LCD_Data[Count_I] = 0x02;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0C00 && Alarm_Count == 2)
{
LCD_Data[Count_I] = 0x03;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0C00 && Alarm_Count == 4)
{
LCD_Data[Count_I] = 0x03;
Count_I++;
}
else
{
LCD_Data[Count_I] = 0x00;
Count_I++;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0286) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0286);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
if(gps_data.Rev_data.CellhitData & 0x0400 && Alarm_Count == 0)
{
LCD_Data[Count_I] = 0x01;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x0800 && Alarm_Count == 1)
{
LCD_Data[Count_I] = 0x02;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x4000 && Alarm_Count == 2)
{
LCD_Data[Count_I] = 0x03;
Count_I++;
}
else if(gps_data.Rev_data.CellhitData & 0x4000 && Alarm_Count == 3)
{
LCD_Data[Count_I] = 0x03;
Count_I++;
}
else
{
LCD_Data[Count_I] = 0x00;
Count_I++;
}
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0310) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0310);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ZvolG >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ZvolG);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0312) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0312);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ZvolQ >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ZvolQ);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0314) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0314);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolG >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolG);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0316) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0316);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolGH >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolGH);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0318) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0318);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolGtime >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolGtime);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x031A) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x031A);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolQ >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolQ);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x031C) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x031C);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolQH >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolQH);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x031E) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x031E);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolQtime >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SingvolQtime);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0336) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0336);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellXyc >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellXyc);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0334) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0334);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutcurrG >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutcurrG);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0332) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0332);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutcurrGtime >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutcurrGtime);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0330) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0330);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgcurrG >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgcurrG);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x032E) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x032E);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgcurrGtime >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgcurrGtime);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x032C) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x032C);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Equalivol >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Equalivol);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x032A) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x032A);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Equalivolcc >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Equalivolcc);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0328) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0328);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.EqualiON);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0320) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0320);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ShortCurValue);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0326) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0326);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ShortCurDelay >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ShortCurDelay);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0322) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0322);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.GpsDVol >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.GpsDVol);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0324) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0324);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.GpsDVolH >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.GpsDVolH);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0340) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0340);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.PowTmp >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.PowTmp);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0342) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0342);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.PowTmpH >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.PowTmpH);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0344) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0344);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Equaltmpb >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Equaltmpb);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0346) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0346);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.EqualtmpH >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.EqualtmpH);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0348) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0348);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellTmp >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellTmp);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x034A) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x034A);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ShiduValueProtect);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x034C) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x034C);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ShiduKaiguan);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0358) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0358);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellChgTmpG >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellChgTmpG);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0356) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0356);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellOutTmpG >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellOutTmpG);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0354) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0354);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgTmpD >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgTmpD);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0352) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0352);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgTmpDH >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgTmpDH);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0350) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0350);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutTmpD >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutTmpD);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x034E) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x034E);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutTmpDH >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutTmpDH);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0360) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0360);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Cellnum >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Cellnum);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0362) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0362);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellRl >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CellRl);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0364) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0364);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Celltype);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0366) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0366);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Reali_Q >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.Reali_Q);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0368) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0368);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ChgMOS);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x036A) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x036A);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.OutMOS);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x036C) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x036C);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CurrjzONOFF);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x036E) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x036E);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CurrJZ >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.CurrJZ);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0370) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0370);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.BHBAddr);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0372) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0372);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SleepTime >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SleepTime);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0374) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0374);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.DRLNum);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x0D;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0376) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0376);
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[0];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[1];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[2];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[3];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[4];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[5];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[6];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[7];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[8];
Count_I++;
LCD_Data[Count_I] = gps_data.RevWrite_data.Pass[9];
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x07;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x0380) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x0380);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SysTime >> 24);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SysTime >> 16);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SysTime >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.SysTime);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x12;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x038A) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x038A);
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[0];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[1];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[2];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[3];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[4];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[5];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[6];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[7];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[8];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[9];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[10];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[11];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[12];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[13];
Count_I++;
LCD_Data[Count_I] = soft_num_ZF[14];
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0xA55A);
Count_I++;
LCD_Data[Count_I] = 0x05;
Count_I++;
LCD_Data[Count_I] = 0x82;
Count_I++;
LCD_Data[Count_I] = (u8)((0x03A0) >> 8);
Count_I++;
LCD_Data[Count_I] = (u8)(0x03A0);
Count_I++;
LCD_Data[Count_I] = 0x00;
Count_I++;
LCD_Data[Count_I] = (u8)(gps_data.RevWrite_data.ZChgON);
Count_I++;
Alarm_Count++;
if(Alarm_Count == 4)
{
Alarm_Count = 0;
}
Send_TString_LCD(LCD_Data, Count_I);
}
void LCD_DataHandle(void)
{
u16 start_addr = 0;
u8 order = 0;
if(LCD_Data_BUFF.G4_Rev_start == 1)
{
LCD_Data_BUFF.G4_Rev_start = 0;
memcpy(LCD_Buff_GLoa, LCD_Data_BUFF.G4_Rev_buf, 30);
start_addr = (LCD_Data_BUFF.G4_Rev_buf[4] << 8) | (LCD_Data_BUFF.G4_Rev_buf[5]);
order = LCD_Data_BUFF.G4_Rev_buf[3];
switch(order)
{
case 0x83:
switch(start_addr)
{
case 0x0310:
gps_data.RevWrite_data.ZvolG = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(10);
break;
case 0x0312:
gps_data.RevWrite_data.ZvolQ = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(11);
break;
case 0x0314:
gps_data.RevWrite_data.SingvolG = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(12);
break;
case 0x0316:
gps_data.RevWrite_data.SingvolGH = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(13);
break;
case 0x0318:
gps_data.RevWrite_data.SingvolGtime = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(14);
break;
case 0x031A:
gps_data.RevWrite_data.SingvolQ = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(15);
break;
case 0x031C:
gps_data.RevWrite_data.SingvolQH = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(16);
break;
case 0x031E:
gps_data.RevWrite_data.SingvolQtime = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(17);
break;
case 0x0336:
gps_data.RevWrite_data.CellXyc = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(18);
break;
case 0x0334:
gps_data.RevWrite_data.OutcurrG = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(19);
break;
case 0x0332:
gps_data.RevWrite_data.OutcurrGtime = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(20);
break;
case 0x0330:
gps_data.RevWrite_data.ChgcurrG = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(21);
break;
case 0x032E:
gps_data.RevWrite_data.ChgcurrGtime = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(22);
break;
case 0x032C:
gps_data.RevWrite_data.Equalivol = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(23);
break;
case 0x032A:
gps_data.RevWrite_data.Equalivolcc = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(24);
break;
case 0x0328:
gps_data.RevWrite_data.EqualiON = (LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(25);
break;
case 0x0340:
gps_data.RevWrite_data.PowTmp = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(26);
break;
case 0x0342:
gps_data.RevWrite_data.PowTmpH = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(27);
break;
case 0x0344:
gps_data.RevWrite_data.Equaltmpb = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(28);
break;
case 0x0346:
gps_data.RevWrite_data.EqualtmpH = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(29);
break;
case 0x0348:
gps_data.RevWrite_data.CellTmp = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(30);
break;
case 0x0358:
gps_data.RevWrite_data.CellChgTmpG = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(31);
break;
case 0x0356:
gps_data.RevWrite_data.CellOutTmpG = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(32);
break;
case 0x0354:
gps_data.RevWrite_data.ChgTmpD = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(33);
break;
case 0x0352:
gps_data.RevWrite_data.ChgTmpDH = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(34);
break;
case 0x0350:
gps_data.RevWrite_data.OutTmpD = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(35);
break;
case 0x034E:
gps_data.RevWrite_data.OutTmpDH = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(36);
break;
case 0x0360:
if(gps_data.RevWrite_data.Cellnum != LCD_Data_BUFF.G4_Rev_buf[8])
{
gps_data.RevWrite_data.ZvolG = gps_data.RevWrite_data.SingvolG / 10.0 * LCD_Data_BUFF.G4_Rev_buf[8];
gps_data.RevWrite_data.ZvolQ = gps_data.RevWrite_data.SingvolQ / 10.0 * LCD_Data_BUFF.G4_Rev_buf[8];
}
gps_data.RevWrite_data.Cellnum = LCD_Data_BUFF.G4_Rev_buf[8];
((*VPRO_EN . outputIO) |= VPRO_EN . validBit);
LCD_num_sconf = 0;
LCD_SetACanshu = 0;
LCD_num_sconf = LCD_Data_BUFF.G4_Rev_buf[8] & 0x0F;
delay_ms(20);
LCD_SetACanshu = (data_309_A.EEPROMRevdata.Sconf1.datas & 0xF0);
LCD_SetACanshu = LCD_SetACanshu | LCD_num_sconf;
MTPWrite_fun_1(0x00, 1, &LCD_SetACanshu);
((*VPRO_EN . outputIO) &= (~VPRO_EN . validBit));
ResetAFE_1();
flash_write_sys_flag(37);
flash_write_sys_flag_Zvol();
break;
case 0x0362:
if(gps_data.RevWrite_data.CellRl != ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]))
{
SOCinit = 0;
SOCinit_bit = 0;
}
gps_data.RevWrite_data.CellRl = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(38);
if(gps_data.RevWrite_data.Reali_Q > gps_data.RevWrite_data.CellRl)
gps_data.RevWrite_data.Reali_Q = gps_data.RevWrite_data.CellRl;
break;
case 0x0368:
gps_data.RevWrite_data.ChgMOS = LCD_Data_BUFF.G4_Rev_buf[8];
if(gps_data.RevWrite_data.ChgMOS == 1)
{
Chg_Lock = 0;
if(ChgMos_bit == 0)
{
Free309CHGMos();
ChgMos_bit = 0;
}
else
{
if(Chg_Flag == 0)
{
Free309CHGMos();
ChgMos_bit = 0;
}
}
}
else
{
Chg_Lock = 1;
Shut309CHGMos();
ChgMos_bit = 1;
}
flash_write_sys_flag(39);
break;
case 0x036A:
gps_data.RevWrite_data.OutMOS = LCD_Data_BUFF.G4_Rev_buf[8];
if(gps_data.RevWrite_data.OutMOS == 1)
{
Out_Lock = 0;
if(OutMos_bit == 0)
{
Free309DSGMos();
OutMos_bit = 0;
}
else
{
if(Out_flag == 0)
{
Free309DSGMos();
OutMos_bit = 0;
}
}
}
else
{
Out_Lock = 1;
Shut309DSGMos();
OutMos_bit = 1;
}
flash_write_sys_flag(40);
break;
case 0x036E:
gps_data.RevWrite_data.CurrJZ = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(41);
break;
case 0x0370:
gps_data.RevWrite_data.BHBAddr = LCD_Data_BUFF.G4_Rev_buf[8];
flash_write_sys_flag(42);
break;
case 0x0364:
if(gps_data.RevWrite_data.Celltype != LCD_Data_BUFF.G4_Rev_buf[8])
{
SOCinit_bit = 0;
if(LCD_Data_BUFF.G4_Rev_buf[8] == 0)
{
gps_data.RevWrite_data.SingvolG = 3650;
gps_data.RevWrite_data.SingvolGtime = 4;
gps_data.RevWrite_data.SingvolGH = 3600;
gps_data.RevWrite_data.SingvolQ = 2800;
gps_data.RevWrite_data.SingvolQtime = 4;
gps_data.RevWrite_data.SingvolQH = 2900;
gps_data.RevWrite_data.ChgcurrG = 20;
gps_data.RevWrite_data.ChgcurrGtime = 4;
gps_data.RevWrite_data.OutcurrG = 60;
gps_data.RevWrite_data.OutcurrGtime = 60;
gps_data.RevWrite_data.CellXyc = 1000;
gps_data.RevWrite_data.Equalivol = 3300;
gps_data.RevWrite_data.Equalivolcc = 10;
}
else if(LCD_Data_BUFF.G4_Rev_buf[8] == 1)
{
gps_data.RevWrite_data.SingvolG = 4200;
gps_data.RevWrite_data.SingvolGtime = 4;
gps_data.RevWrite_data.SingvolGH = 4100;
gps_data.RevWrite_data.SingvolQ = 2800;
gps_data.RevWrite_data.SingvolQtime = 4;
gps_data.RevWrite_data.SingvolQH = 2900;
gps_data.RevWrite_data.ChgcurrG = 20;
gps_data.RevWrite_data.ChgcurrGtime = 4;
gps_data.RevWrite_data.OutcurrG = 60;
gps_data.RevWrite_data.OutcurrGtime = 60;
gps_data.RevWrite_data.CellXyc = 1000;
gps_data.RevWrite_data.Equalivol = 4000;
gps_data.RevWrite_data.Equalivolcc = 10;
}
else if(LCD_Data_BUFF.G4_Rev_buf[8] == 2)
{
gps_data.RevWrite_data.SingvolG = 2300;
gps_data.RevWrite_data.SingvolGtime = 4;
gps_data.RevWrite_data.SingvolGH = 2250;
gps_data.RevWrite_data.SingvolQ = 1500;
gps_data.RevWrite_data.SingvolQtime = 4;
gps_data.RevWrite_data.SingvolQH = 1600;
gps_data.RevWrite_data.ChgcurrG = 20;
gps_data.RevWrite_data.ChgcurrGtime = 4;
gps_data.RevWrite_data.OutcurrG = 60;
gps_data.RevWrite_data.OutcurrGtime = 60;
gps_data.RevWrite_data.CellXyc = 1000;
gps_data.RevWrite_data.Equalivol = 2000;
gps_data.RevWrite_data.Equalivolcc = 5;
}
}
gps_data.RevWrite_data.Celltype = LCD_Data_BUFF.G4_Rev_buf[8];
flash_write_sys_flag(43);
flash_write_sys_flag_Init();
break;
case 0x0372:
gps_data.RevWrite_data.SleepTime = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(44);
Sleep_Times = gps_data.RevWrite_data.SleepTime;
break;
case 0x0374:
gps_data.RevWrite_data.DRLNum = LCD_Data_BUFF.G4_Rev_buf[8];
flash_write_sys_flag(45);
break;
case 0x03A0:
gps_data.RevWrite_data.ZChgON = LCD_Data_BUFF.G4_Rev_buf[8];
if(gps_data.RevWrite_data.ZChgON >= 1) SpecChargerFlag = 1;
else
{
HDCurr_Flag = 0;
HDCurr_num = 0;
SpecChargerFlag = 0;
}
flash_write_sys_flag(47);
break;
case 0x0380:
gps_data.RevWrite_data.SysTime = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(50);
break;
case 0x036C:
gps_data.RevWrite_data.CurrjzONOFF = LCD_Data_BUFF.G4_Rev_buf[8];
break;
case 0x0366:
gps_data.RevWrite_data.Reali_Q = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(52);
break;
case 0x0630:
__set_PRIMASK(1);
ResetAFE_1();
ResetAFE_2();
delay_ms(50);
NVIC_SystemReset();
break;
case 0x0322:
gps_data.RevWrite_data.GpsDVol = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(59);
break;
case 0x0324:
gps_data.RevWrite_data.GpsDVolH = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(60);
break;
case 0x034C:
gps_data.RevWrite_data.ShiduKaiguan = LCD_Data_BUFF.G4_Rev_buf[8];
flash_write_sys_flag(61);
break;
case 0x034A:
gps_data.RevWrite_data.ShiduValueProtect = LCD_Data_BUFF.G4_Rev_buf[8];
flash_write_sys_flag(63);
break;
case 0x0320:
gps_data.RevWrite_data.ShortCurValue = LCD_Data_BUFF.G4_Rev_buf[8];
flash_write_sys_flag(64);
break;
case 0x0326:
gps_data.RevWrite_data.ShortCurDelay = ((LCD_Data_BUFF.G4_Rev_buf[7] << 8) | LCD_Data_BUFF.G4_Rev_buf[8]);
flash_write_sys_flag(65);
break;
case 0x0604:
LCD_User_Pass[0] = 0x02;
LCD_User_Pass[1] = LCD_Data_BUFF.G4_Rev_buf[11];
LCD_User_Pass[2] = LCD_Data_BUFF.G4_Rev_buf[13];
break;
case 0x0440:
LCD_PassWord[0] = LCD_Data_BUFF.G4_Rev_buf[8];
LCD_PassWord[1] = LCD_Data_BUFF.G4_Rev_buf[9];
LCD_PassWord[2] = LCD_Data_BUFF.G4_Rev_buf[10];
break;
case 0x060A:
if((LCD_PassWord[0] == LCD_User_Pass[0]) && (LCD_PassWord[1] == LCD_User_Pass[1]) && (LCD_PassWord[2] == LCD_User_Pass[2]))
{
Login_Flag = 1;
Send_string_Ye(Ye, 7);
}
else
{
Send_string_Ye(YeError, 7);
}
break;
default:
break;
}
break;
}
memset(LCD_Data_BUFF.G4_Rev_buf, 0, sizeof(LCD_Data_BUFF.G4_Rev_buf));
}
}