首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

gz16的CAN问题

gz16的CAN问题

怎么接收满中断开不了?在CMCR0_SFTRES=1下CRIER_RXFIE赋不了1啊,请高手们指点!!
谢谢!!
hi
应该可以吧
我做过GZ16
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接收中断使能
}
现在问题是can的那些寄存器在SFTRES为1的时候都写不进去,读出来的结果比如CMCR1/CBTR0/CBTR1/CRFLG/CRIER/CTFLG/CTCR的值一直是1/2/3/4/5/6/7,哪位大侠可以帮我看一下我的文件包?
hi
上面的程序我试过了,是好用的
搞定了,原来在config2中忘了使能mscan
hi
返回列表