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
#ifndef _RADAR_R3_H_
#define _RADAR_R3_H_
#include "API.h"
#include "SCI0_UART.h"
#include "Line_In.h"
#include "Radar_Common.h"
#include "CAN_Communication_Matrix.h"
/******************************************************************************
雷达配置
******************************************************************************/
#define RADAR_R3_MSG_LOST_THRESHOLD 2 //unit:s
/******************************************************************************
全局变量
******************************************************************************/
//extern volatile uint8_t RadarMsgLost;
//#ifndef RADAR_MSG_LOST
//#define RADAR_MSG_LOST RadarMsgLost
//#define RADAR_R3_DECLARE_MSG_LOST
//#endif
/******************************************************************************
帧类型
******************************************************************************/
//#define RADAR_R3_SELF_TEST_FRAME 0xAA
//#define RADAR_R3_MESSAGE_FRAME 0x55
#define RADAR_R3_MESSAGE_FRAME 0x55
/******************************************************************************
帧首/帧尾
******************************************************************************/
//#define RADAR_R3_SOF_SELF_TEST 0xAA
//#define RADAR_R3_EOF_SELF_TEST 0xAF
#define RADAR_R3_EOF1_MESSAGE 0xFE
#define RADAR_R3_EOF2_MESSAGE 0xFF
/******************************************************************************
接收Buffer结构
******************************************************************************/
typedef union
{
uint8_t Byte[12];
struct
{
uint8_t Type : 8; //1
uint8_t : 8; //2
uint8_t : 8; //3
uint8_t : 8; //4
uint8_t : 8; //5
uint8_t : 8; //6
uint8_t : 8; //7
uint8_t : 8; //8
uint8_t : 8; //9
uint8_t : 8; //10 校验和
uint8_t : 8; //11
uint8_t : 8; //12
}Frame;
struct
{
uint8_t SOF : 8;
uint8_t RL_H : 8;
uint8_t RL_L : 8;
uint8_t RLM_H : 8;
uint8_t RLM_L : 8;
uint8_t RRM_H : 8;
uint8_t RRM_L : 8;
uint8_t RR_H : 8;
uint8_t RR_L : 8;
uint8_t SND : 8; //10 校验和
uint8_t EOF1 : 8;
uint8_t EOF2 : 8;
}Msg;
}RadarR3DataBufferUnion;
/******************************************************************************
接收控制结构
******************************************************************************/
typedef struct
{
uint8_t Enable; //启用
uint8_t SelfTest; //自检
uint8_t Rsvd;
uint8_t Ptr;
uint8_t Len;
uint8_t Complete;
uint16_t Timer; //定时器
uint16_t Counter; //计数器
}RadarR3ReceivingCtrlStruct;
/******************************************************************************
函数声明
******************************************************************************/
void Radar_R3_Init(void);
void Radar_R3_Receiving_Service(void);
void Radar_R3_Receive_Enable(uint8_t En);
void Radar_R3_Receive_Data(uint8_t Data, uint8_t Parity);
#endif