Board logo

标题: gz16的CAN问题 [打印本页]

作者: metro_jam    时间: 2005-9-2 13:11     标题: gz16的CAN问题

怎么接收满中断开不了?在CMCR0_SFTRES=1下CRIER_RXFIE赋不了1啊,请高手们指点!!
谢谢!!
作者: lotte521    时间: 2005-9-3 00:01

应该可以吧
我做过GZ16
作者: yunfeng    时间: 2005-9-5 14:41

CMCR0=0才能开中断

void CAN_Init(void)
{
  /* CMCR0: ??=0,??=0,??=0,SYNCH=0,TLNKEN=0,SLPAK=0,SLPRQ=0,SFTRES=1 */
  CMCR0 = 1;                           /* CAN reset */
  /* CMCR1: ??=0,??=0,??=0,??=0,??=0,LOOPB=0,WUPM=0,CLKSRC=0 */
  CMCR1 = 0;        //2Mhz
  
  CIDAC_IDAM = 0;     
  CIDAR = 0x00000000; //Set the acceptance code
  CIDMR = 0xFFFFFFFF; //Set the acceptance mask
  
  CBTR0  = 0x43;   
  CBTR1  = 0xA3;   //波特率62.5K

  CMCR0  = 0x00;   //CAN模块设置为数据输入输出状态
  CRIER  = 0x01;   //CAN接收中断使能
}
作者: metro_jam    时间: 2005-9-6 21:58

现在问题是can的那些寄存器在SFTRES为1的时候都写不进去,读出来的结果比如CMCR1/CBTR0/CBTR1/CRFLG/CRIER/CTFLG/CTCR的值一直是1/2/3/4/5/6/7,哪位大侠可以帮我看一下我的文件包?
作者: yunfeng    时间: 2005-9-7 09:41

上面的程序我试过了,是好用的
作者: metro_jam    时间: 2005-9-7 19:28

搞定了,原来在config2中忘了使能mscan




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0