STM32 CAN 完整驱动 ......你懂得!!

2019-10-16 01:35发布

本帖最后由 能不能 于 2016-12-14 16:25 编辑

#ifndef __CAN_H
#define __CAN_H         
#include "sys.h"            
//////////////////////////////////////////////////////////////////////////////////         

/*
说明:前面的5个函数是基础,后面的函数是不同模式下的过滤ID的

*/


//CAN接收RX0中断使能
#define CAN_RX0_INT_ENABLE        0                                  //0,不使能;1,使能.                                                                    
                                                                                                                                                                              
u8 CAN_Mode_Init(u8 tsjw,u8 tbs2,u8 tbs1,u16 brp,u8 mode);   //CAN初始化

u8 Can_Send_Msg(u8* msg,u8 len);                                     //发送数据
u8 Can_Send_MsgAB(u8 id_fmt,u32 id,u8* msg,u8 len);           //发送数据  标准帧/扩展帧 ;ID号;数据内容;数据长度

u8 Can_Receive_Msg(u8 *buf);                                           //接收数据

void CAN_Filter0(void);  //第零种ID不过滤模式

/////////////////////////////////////////////////////////////////////////////////

void CAN_Filter1(void);  //第一种ID过滤模式: 32位列表模式

void CAN_Filter2(void);  //第二种ID过滤模式: 32位屏蔽码模式

void CAN_Filter3(void);  //第三种ID过滤模式: 32位列表模式  过滤多个ID

void CAN_Filter4(void);  //第四种ID过滤模式: 16位列表模式  过滤0-4个ID 标准帧

void CAN_Filter5(void);  //第五种ID过滤模式: 16位屏蔽码模式

void CAN_Filter6(void);  //第六种ID过滤模式: 32位16位混合屏蔽模式  过滤一个16位一个32位ID

/////////////////////////////////////////////////////////////////////////////////

void CAN_Filter33(void); //第三种ID过滤模式: 32位列表模式  过滤多个ID (注释:与上面的第三种滤波作用相同)

void CAN_Filter3a(u8 n,u32 id[2]); //第三种ID过滤模式: 32位列表模式  过滤多个ID   : 过滤器号0-6, id号的数组   FIFO-0

void CAN_Filter3b(u8 n,u32 id[2]); //第三种ID过滤模式: 32位列表模式  过滤多个ID   : 过滤器号7-13,id号的数组   FIFO-1



#endif

QQ : 1347723002


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。