查看: 2304|回复: 3

[其他] 关于CAN4初始化问题

[复制链接]

该用户从未签到

4

主题

21

帖子

0

注册会员

Rank: 2

积分
70
最后登录
1970-1-1
发表于 2013-7-6 21:26:40 | 显示全部楼层 |阅读模式
求教:为什么我设置的dg128芯片的CAN4的初始化,运行程序时一直停在红色标注部分,跳不出这个循环,而CAN0初始化确实可以的。另硬件使用的芯片引脚是98、99引脚上的CAN4功能。
void CAN4_Init(void)
{
     CAN4CTL0=0x80;   //MSCAN12模块使能
     
      //初始化模式请求,并判断初始化应答位,INITACK为1则CAN模块已进入初始化
    CAN4CTL0_INITRQ=1;  // INITRQ=1,初始化请求  
 
    //等待应答
    while((CAN4CTL1_INITAK==0));   
   // while((CAN0CTL1_INITAK==0)&&(CAN4CTL1_INITAK==0)); //初始化模式确认  1=确认进入初始化模式;0=未进入初始化模式 
    CAN4BTR0 = 0x07;    //同步跳转宽度为1,预分频因子为8
    CAN4BTR1 = 0x14;    //将位速率设置成 250kbps
    CAN4IDAC = 0x00;    //两个32位验收过滤器
  
    CAN4IDAR0=0x00;
    CAN4IDAR1=0x00;
    CAN4IDAR2=0x00;
    CAN4IDAR3=0x21;
    CAN4IDAR4=0x00;  
    CAN4IDAR5=0x00;
    CAN4IDAR6=0xA1;
    CAN4IDAR7=0xE8;
    
    
    CAN4IDMR0=0xff; 
    CAN4IDMR1=0xff; 
    CAN4IDMR2=0xff;
    CAN4IDMR3=0xff;
    CAN4IDMR4=0xff; 
    CAN4IDMR5=0xff; 
    CAN4IDMR6=0xff;
    CAN4IDMR7=0xff;
    
   CAN4CTL0_INITRQ =0;   //INITRQ=0,退出初始化模式
    //等待应答
    while((CAN4CTL1_INITAK!=0));
   CAN4RIER = 0x01; //接收中断     
}
我知道答案 目前已有2人回答
回复

使用道具 举报

该用户从未签到

4

主题

21

帖子

0

注册会员

Rank: 2

积分
70
最后登录
1970-1-1
 楼主| 发表于 2013-7-7 10:16:29 | 显示全部楼层

RE:关于CAN4初始化问题

啊·~被忽视了?
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

21

帖子

0

注册会员

Rank: 2

积分
70
最后登录
1970-1-1
 楼主| 发表于 2013-7-7 15:37:54 | 显示全部楼层

PS补充:关于CAN4初始化问题

退出初始化模式时CAN4CTL1_INITAK始终与 CAN4CTL0_INITRQ无法握手~~不知为何原因,求各位大仙指教,解决~~~着急啊·~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

21

帖子

0

注册会员

Rank: 2

积分
70
最后登录
1970-1-1
 楼主| 发表于 2013-7-7 21:05:07 | 显示全部楼层

RE:关于CAN4初始化问题

问题已解决,实在是不好意思 ,是自己粗心的问题,上述程序把CAN4CTL1=0x80写为了CAN4CTL0=0x80,太恨自己了·~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 12:10 , Processed in 0.090793 second(s), 24 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表