关于CAN滤波器设置问题

2019-03-25 20:28发布

以下是我编的一段滤波器设置的程序:
void CAN_AccFilter_Init(void)
  {
            LPC_CANAF->AFMR = 0x01;                 //关闭验收滤波器
        //LPC_CANAF->AFMR |= 1<<1;             //使能修改相关寄存器
//        LPC_CANAF->AFMR &= ~(1<<2);        //禁止FullCAN模式
         SFFIndvCanTab.UpId= 0x00012345;
         SFFIndvCanTab.UpRsv=0x00;
         SFFIndvCanTab.UpDis= 0x00;
         SFFIndvCanTab.UpCh        = 0x01;
         SFFIndvCanTab.LoId        = 0x01;
         SFFIndvCanTab.LoRsv = 0x00;
         SFFIndvCanTab.LoDis= 0x00 ;
         SFFIndvCanTab.LoCh= 0x01;
           /*各表格起始地址*/
    LPC_CANAF->SFF_sa     =0;
        LPC_CANAF->SFF_GRP_sa = 0x00000004;
        LPC_CANAF->EFF_sa          =0x00000004;
        LPC_CANAF->EFF_GRP_sa = 0x00000004;
        LPC_CANAF->ENDofTable =0x00000004;

         LPC_CANAF-> AFMR =0;             //打开验收滤波器
         LPC_CANAF->AFMR &= ~(1<<1);        //禁止修改相关寄存器
         }


//  FullCAN 标准标识符表格或独立标准标识符表格cell内容类型定义:
typedef struct tag_AF_SFF_CELL   //
{
uint32_t UpId   :11;  //11bits ID1
uint32_t UpRsv  :1;  //保留
uint32_t UpDis   :1;  //禁能位
uint32_t UpCh   :3;  //CAN控制器号
  
uint32_t LoId   :11;  //11bitsID0
uint32_t LoRsv   :1;  //保留
uint32_t LoDis   :1;  //禁能位
uint32_t LoCh   :3;  //CAN控制器号
}_AF_SFF_CELL,*P_AF_SFF_CELL;

发现存在问题,哪位高手指点下?谢谢 此帖出自小平头技术问答
0条回答

一周热门 更多>