这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 591can 请帮忙,有弄591can的吗?清进来指点!!谢谢!

共2条 1/1 1 跳转至

591can 请帮忙,有弄591can的吗?清进来指点!!谢谢!

院士
2006-09-17 18:14:16     打赏
591can 请帮忙,有弄591can的吗?清进来指点!!谢谢!



关键词: 591can     帮忙     有弄     的吗     进来     指点     谢谢    

院士
2006-12-22 22:43:00     打赏
2楼
问 void CAN_init()    {


CANMOD=0x01;                  /*进入CAN复位模式,启动CAN初始化*/

P1M2=P1M2|0x02;             /*管脚TXDC设置为推挽模式*/
CANSTA=0x03;                    /*使能接收和发送中断*/


CANADR=RIL;                    /*接收中断级寄存器*/

CANDAT=0x0A;                   
  
  /* 配置CAN位定时*/

CANADR=BTR0;     /*CAN位速率为1000kbps*/
           
CANDAT=0x60;     /*12MHz*/

CANADR=BTR1;     

CANDAT=0x14;   


CANADR = ACR10; /* set address to Acc. Code Register 0 (Bank 1)*/
CANDAT = 0xA0; /* acceptance code 0 used for filtering */

CANADR = ACR20;
CANDAT = 0xB0;

CANADR = ACR30;
CANDAT = 0xC0;
CANADR = ACFMOD; /* set address to ACF Mode register */
CANDAT = 0x55; /* single accept. filters for 11-bit ID’s (SFF)*/
CANADR = ACFPRIO; /* set address to ACF Priority register */
CANDAT = 0xFF; /* high priorities for all filters */

CANADR=AMR10;              /*设定接收屏蔽寄存器的地址*/
CANDAT=0xFF;               /*允许任何数据通过滤波器*/
CANDAT=0xFF;
CANDAT=0xFF;  
CANDAT=0xFF;   
CANADR=ACFEN;           /*设定接收滤波器使能寄存器的地址*/

CANDAT=0x01;            /*使能BANK1的滤波器1*/


CANMOD=0x00;            /*请求进入CAN的激活模式*/

}


/*主函数*/


int main(void)

{
    sys_init();

    CAN_init();

//auto_bit_rate_detection();  /*调用自动位速率检测子函数*/


       Send_En_Flag=1;       /*允许发送*/

    while(1)

    {

    if(Send_En_Flag)              /*如果有发送使能键*/
       
      {


      
          
      CANMOD=0x01;     /*进入复位模式*/

      CANMOD=0x04;      /*进入自检测模式*/       

      Tx_service();

       CANCON=0x10;
  

         if(TCS==1){

          T_led();      
          }
      }
     
    if(RBS==1){
        rece_int();
        }


    }

}

有几个问题:
一个是状态位不显示发送完成标志置位,然后就是线上没有数据流信号,请问那里有问题,请指点!
谢谢!!
1: 求救!!!怎么发送不出去呢?
有总线错误!
为什么呢? 2: qiujiu!没有人弄591 的CAN吗??

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]