43 lines
810 B
C
43 lines
810 B
C
#ifndef _BSP_LIN_H
|
||
#define _BSP_LIN_H
|
||
#include "at32a423.h"
|
||
#define Lin_Speed 19200
|
||
|
||
//LIN接收状态
|
||
typedef enum
|
||
{
|
||
BREAK_GET = 0,
|
||
SYNCH_GET,
|
||
PID_GET,
|
||
MSG_GET,
|
||
CHECKSUM_GET,
|
||
}lin_rxstate_enum;
|
||
|
||
typedef enum
|
||
{
|
||
LIN_OK = 0,
|
||
FIFO_VOID, //无数据
|
||
SYNC_ERR, //同步段错误
|
||
PID_ERR, //PID错误
|
||
NO_RESPONES, //无响应
|
||
CYHECK_ERR, //数据长度错误
|
||
FORMAT_ERR, //校验和错误
|
||
}lin_error_enum;
|
||
|
||
#pragma pack (1)
|
||
typedef struct
|
||
{
|
||
uint8_t sync; //同步段:固定值0x55
|
||
uint8_t frameid; //帧ID
|
||
uint8_t pid; //PID
|
||
uint8_t datalen; //LIN数据段有效字节数
|
||
uint8_t data[8]; //数据段(lin规定数据长最多8字节)
|
||
uint8_t checksum; //校验和
|
||
}lin_msg_struct;
|
||
#pragma pack()
|
||
|
||
void lin_init(void);
|
||
uint8_t rx_ring_buffer_get_lin_msg(lin_msg_struct * p_lin_msg);
|
||
void USART3_IRQHandler(void);
|
||
#endif
|