- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
验收滤波器 文档
? 驱动程序如下:
??? ?驱动程序分为两部分,AF.h为头文件,定义相关的寄存器和宏,AF.c文件中实现验收滤波器的初始化。具体代码如下:
/*************************************************/
/*文件名:AF.h
描 述 :CAN验收滤波器相关寄存器定义和相关宏定义*/
/*************************************************/
#define CANAFRAM_ADD (0xE0038000) //验收滤波器RAM首地址
//验收滤波器表格
#define regCANSFF_TAB(i) (*((volatile P_uCANSFF)(CANAFRAM_ADD + i*4)))
#define regCANSFF_GRP_TAB(i) (*((volatile P_uCANSFF)(CANAFRAM_ADD+i*4)))
#define regCANEFF_TAB(i) (*((volatile P_uCANEFF)(CANAFRAM_ADD + i*4)))
#define regCANEFF_GRP_TAB(i) (*((volatile P_uCANEFF)(CANAFRAM_ADD + i*4)))
//CAN滤波器标准帧表格数据类型定义
typedef union _cansff_
{
unsigned long Word;
struct
{
unsigned long CANSFFID1 :11;
unsigned long RSV_BIT1 :1;
unsigned long EN_BIT1 :1;
unsigned long Num_BIT1 :3;
unsigned long CANSFFID2 :11;
unsigned long RSV_BIT2 :1;
unsigned long EN_BIT2 :1;
unsigned long Num_BIT2 :3;
}Bits;
}uCANSFF,*P_uCANSFF;
//CAN滤波器扩展帧表格数据类型定义
typedef union _caneff_
{
unsigned long Word;
struct
{
unsigned long CANEFFID1 :29;
unsigned long Num_BIT :3;
}Bits;
}uCANEFF,*P_uCANEFF;
?
验收滤波器初始化设置函数:
/******************************************/
/*文件名:AF.c
描 述 :初始化验收滤波器*/
/******************************************/
#include AF.h
void Init_CAN_AccFilter(void)
{
unsigned char i=0;
AFMR |=1 //关闭验收滤波器
AFMR |= 11; //使能修改相关寄存器
AFMR = ~(12); //禁止FullCAN模式
/*独立标准帧标识符*/
regCANSFF_TAB(i).Bits.CANSFFID2 = ID0;
regCANSFF_TAB(i).Bits.EN_BIT2 = 0;
regCANSFF_TAB(i).Bits.Num_BIT2 = 使用的CAN控制器号
regCANSFF_TAB(i).Bits.CANSFFID1 = ID1;
regCANSFF_TAB(i).Bits.EN_BIT1 = 0;
regCANSFF_TAB(i).Bits.Num_BIT1 = 使用的CAN控制器号;
i++;
/*组标准帧标识符*/
regCANSFF_GRP_TAB(i).Bits.CANSFFID2 = ID2;
regCANSFF_GRP_TAB(i).Bits.EN_BIT2 = 0;
regCANSFF_GRP_TAB(i).Bits.Num_BIT2 =使用的 CAN控制器号;
regCANSFF_GRP_TAB(i).Bits.CANSFFID1 = ID3;
regCANSFF_GRP_TAB(i).Bits.EN_BIT1 = 0;
regCA
文档评论(0)