QuakeGod
2023-02-01 6126f6a78b14297cefb02f06ba58806767d424b5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/**
  ******************************************************************************
  * @file           : FP0.h
  * @brief          : Header for FP0.c file.
  *                   This file contains the function defines of the FP0 .
  ******************************************************************************
    */
#ifndef __FP0_H__
#define __FP0_H__
#include "main.h"
 
enum enCMD_TYPE
{
    CMD_0_QUERY =0,
    CMD_1=0x1,    // 
    CMD_2=0x2,    // 
    CMD_3_EXCHG=0x3,    // 
    CMD_4=0x4,    // 
    CMD_5=0x5,    // 
    CMD_6=0x6,    // 
    CMD_7_END=0x7,    // 
};
 
typedef struct tagFP0PinStat
{
    unsigned short OE:1;
    unsigned short RST:1;
    unsigned short SYN:1;
    unsigned short ACK:1;
    unsigned short SEL:1;
    
}stFP0PinStat;
 
 
#define RST_PORT GPIOB
#define RST_PIN LL_GPIO_PIN_9
 
#define SYN_PORT GPIOF
#define SYN_PIN LL_GPIO_PIN_6
 
#define ACK_PORT GPIOA
#define ACK_PIN LL_GPIO_PIN_11
 
 
#define FP0DE_PORT GPIOF
#define FP0DE_PIN LL_GPIO_PIN_7
 
#define OE_PORT GPIOB
#define OE_PIN LL_GPIO_PIN_6
 
#define SEL_PORT GPIOB
#define SEL_PIN LL_GPIO_PIN_8
 
 
#define GetRSTPin() LL_GPIO_IsInputPinSet(RST_PORT,RST_PIN)
 
#define GetSYNPin() LL_GPIO_IsInputPinSet(SYN_PORT,SYN_PIN)
 
#define GetOEPin() LL_GPIO_IsInputPinSet(OE_PORT,OE_PIN)
 
#define GetSELPin() (1) //LL_GPIO_IsInputPinSet(SEL_PORT,SEL_PIN)
 
#define GetACKPin() LL_GPIO_IsInputPinSet(ACK_PORT,ACK_PIN)
 
 
#define SetACKPin_0() LL_GPIO_ResetOutputPin(ACK_PORT,ACK_PIN)
#define SetACKPin_1() LL_GPIO_SetOutputPin(ACK_PORT,ACK_PIN)
 
#define SetFP0DEPin_0() LL_GPIO_ResetOutputPin(FP0DE_PORT,FP0DE_PIN)
#define SetFP0DEPin_1() LL_GPIO_SetOutputPin(FP0DE_PORT,FP0DE_PIN)
 
 
extern uint8_t PkgBuf1[32];
extern uint8_t PkgBuf2[32];
extern uint8_t PkgLen1;
extern uint8_t PkgLen2;
extern uint8_t bReceiving;
extern uint8_t nReceivedLen;
extern uint8_t bSending;
extern uint8_t bSentLen;
 
extern uint8_t bConfiged;
 
extern uint8_t nInputBytes;
extern uint8_t nOutputBytes;
 
extern unsigned char SPI1RecvBuf[32];
extern unsigned char SPI1SendBuf[32];
 
extern volatile unsigned char bSPI1Recving;
extern volatile unsigned char bSPI1RecvDone;
 
extern volatile unsigned char nSPI1RecvPos;
extern volatile unsigned char nSPI1RecvLenInBuf;
 
extern volatile unsigned char nSPI1ToSendLen;
extern volatile unsigned char nSPI1SentLen;
 
extern volatile unsigned char bSPI1Sending;
extern volatile unsigned char bSPI1SendDone;
 
extern volatile int oldSYN;
 
typedef struct tagFP0QuRplyPkg
{
    uint8_t Hdr1;
    uint8_t nInputBytes;
    uint8_t nOutputBytes;
    uint8_t nParam1;
    uint8_t nBCC;
    uint8_t End1;
}stFP0QuRplyPkg, *pFP0QuRplyPkg;
 
typedef struct tagFP0EXGRplyPkg
{
    uint8_t Hdr1;
    uint8_t nInputBytes[6];
    uint8_t nBCC;
    uint8_t End1;
}stFP0EXGRplyPkg, * pFP0EXGRplyPkg;
 
uint8_t FP0_Init(void);
uint8_t FP0_Proc(void);
 
uint8_t CalFP0BCC(uint8_t* pBuf, uint8_t len1);
uint8_t CheckFP0Pkg(uint8_t * pBuf, uint8_t len1);
uint8_t ParseFP0Pkg(uint8_t * pBuf, uint8_t len1);
uint8_t SendFP0Pkg(uint8_t * pBuf, uint8_t len1);
 
#endif  /* __FP0_H__ */