2023-10-06 18:47:05 +08:00
|
|
|
|
#ifndef if_can_h__
|
|
|
|
|
#define if_can_h__
|
|
|
|
|
|
|
|
|
|
//#include "define.h"
|
|
|
|
|
#include "stm32f10x_can.h"
|
|
|
|
|
|
2024-01-08 18:04:05 +08:00
|
|
|
|
|
|
|
|
|
|
2023-10-06 18:47:05 +08:00
|
|
|
|
typedef struct{
|
|
|
|
|
uint32_t Reserve1 :3;
|
|
|
|
|
uint32_t srcMACID :5;
|
|
|
|
|
uint32_t Reserve0 :2;
|
|
|
|
|
uint32_t destMACID :5;
|
|
|
|
|
uint32_t ACK :1;
|
|
|
|
|
uint32_t FunClass :6;
|
|
|
|
|
uint32_t SegFlag :2;
|
|
|
|
|
uint32_t SegNum :8;
|
|
|
|
|
|
2024-01-08 18:04:05 +08:00
|
|
|
|
}YeCanID_st_old;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct{
|
|
|
|
|
uint32_t SegNum :8;
|
|
|
|
|
uint32_t Reserve0 :2;
|
|
|
|
|
uint32_t ACK :1;
|
|
|
|
|
uint32_t FunClass :6;
|
|
|
|
|
uint32_t SegFlag :2;
|
|
|
|
|
uint32_t destMACID :5;
|
|
|
|
|
uint32_t srcMACID :5;
|
|
|
|
|
uint32_t Reserve1 :3;
|
|
|
|
|
|
2023-10-06 18:47:05 +08:00
|
|
|
|
}YeCanID_st;
|
|
|
|
|
|
|
|
|
|
typedef union{
|
|
|
|
|
uint32_t Exide;
|
|
|
|
|
YeCanID_st yecanid;
|
2024-01-08 18:04:05 +08:00
|
|
|
|
YeCanID_st_old yecanid_old;
|
2023-10-06 18:47:05 +08:00
|
|
|
|
}YeCanID_un;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct{
|
|
|
|
|
|
|
|
|
|
uint8_t *rx_databuf; //接收数据缓存
|
|
|
|
|
uint8_t seg_num; //分段号
|
|
|
|
|
uint8_t seg_flag;//分段标志
|
|
|
|
|
uint16_t rx_index;//接收缓存下标
|
|
|
|
|
}YeCanRxFrame_st;
|
|
|
|
|
|
|
|
|
|
extern volatile uint8_t CAN0_TX_BUSY_Flag;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
@brief CAN通讯初始化, 包括CANgpio 过滤器
|
|
|
|
|
*/
|
|
|
|
|
void YeCanInit(void);
|
|
|
|
|
/*
|
|
|
|
|
@brief CAN发送通讯帧
|
|
|
|
|
@param 源地址
|
|
|
|
|
@param 主机地址
|
|
|
|
|
@param 发送数据缓存
|
|
|
|
|
@param 发送数据长度
|
|
|
|
|
@rtv 0 成功 1 失败
|
|
|
|
|
*/
|
2024-01-06 09:54:54 +08:00
|
|
|
|
uint8_t YeCan_SendFrame(uint8_t srcaddr,uint8_t dstaddr,const uint8_t* txdata, uint16_t len,int delay_ms);
|
2023-10-06 18:47:05 +08:00
|
|
|
|
|
|
|
|
|
#endif
|