打印

can总线始终也是不能发送~

[复制链接]
2735|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
假如我是真的|  楼主 | 2015-10-27 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
同志们,我调着程序有一阵了,基本的设置没什么错误,为什么发送不了数据,本人虚心求教,用的是PIC18的片子
其中这为单片机can模块初始化
void InitECAN(void)
{       
        PIE5bits.RXB0IE = 1;//接收缓冲0中断允许
        IPEN = 1;
        PEIE = 1;                        //全局的低级中断允许
        GIE = 1;            //全局的高级中断允许
//        TXB0IP = 1;         
        RXB0IP = 1;                        //接收为高优先级
       
        BIE0 = 0xFF;   
       
        ECANMD = 0;//使能CAN模块

    CANCON = 0x80;//请求进入配置模式
    while(!(CANSTATbits.OPMODE == 0x04));//等待模块确认进入配置模式

       
        //波特率设置 125Kbps
    BRGCON1 = 0x87; //0000 0111     //SJW=3TQ     BRP  15
    BRGCON2 = 0xB8; //1011 1000     //SEG2PHTS 1    sampled once  PS1=8TQ  PropagationT 1TQ  
    BRGCON3 = 0x05; //0000 0101     //PS2  6TQ        

    //屏蔽器选择寄存器
        MSEL0 = 0xF4;  //过滤器0--接收屏蔽0; 过滤器1--接收屏蔽1;其他无屏蔽  
    MSEL1 = 0xFF;     
    MSEL2 = 0xFF;     
    MSEL3 = 0xFF;     

    //缓冲区n 数据长度编码寄存器
    BSEL0 = 0xFC;//缓冲区0-5被设置为发送模式

    //屏蔽位--掩码位;过滤位--有效值
    //标准标识符屏蔽寄存器//0010 CM DD DDD   
    RXM0SIDH = 0b11110011;   
        RXM0SIDL = 0b11100000;
        RXM1SIDH = 0x00;//不使用第二个
    RXM1SIDL = 0x00;

        //扩展标识符屏蔽寄存器
    RXM0EIDH = 0x00;// 接收屏蔽
    RXM0EIDL = 0x00;
    RXM1EIDH = 0x00;   
    RXM1EIDL = 0x00;

    //接收过滤器控制寄存器
    RXFCON0 = 0x03;//使能前两个接收过滤器
    RXFCON1 = 0x00;

    //接收过滤器缓冲区控制寄存器
    RXFBCON0 = 0x10;
    RXFBCON1 = 0xFF;
    RXFBCON2 = 0xFF;
    RXFBCON3 = 0xFF;
    RXFBCON4 = 0xFF;
    RXFBCON5 = 0xFF;
    RXFBCON6 = 0xFF;
    RXFBCON7 = 0xFF;

    //标志标示符够滤器 //0010 CM DD DDD
        RXF0SIDH = SysFunct_Code|(Dec_Addr>>3);
    RXF0SIDL = (Dec_Addr<<5);
    RXF1SIDH = SysFunct_Code|(Dec_Addr>>3);
    RXF1SIDL = (Dec_Addr<<5);

    //扩展标示符过滤器
    RXF0EIDH = 0x00;
    RXF0EIDL = 0x00;
    RXF1EIDH = 0x00;
    RXF1EIDL = 0x00;

    CANCON = 0x00;//请求进去工作模式
    while(CANSTATbits.OPMODE==0x00);//等待进入模式

        //清除接收区
    RXB0CON = 0x00;
    RXB1CON = 0x00;
        RXB0IF = 0;
}

之后就在主函数发送,不知为什么发送不出去,波特率和硬件中一进一出设置的没有问题,不知道是什么原因,还希望前辈们多指教~
沙发
wei565831866| | 2015-10-28 09:17 | 只看该作者
顶一下~顶一下~顶一下~顶一下~顶一下~顶一下~顶一下~顶一下~

使用特权

评论回复
板凳
JY-DX-JY| | 2015-10-28 19:11 | 只看该作者
两个PIC18板子吗?

使用特权

评论回复
地板
309579471| | 2015-10-28 20:53 | 只看该作者
先检查下硬件问题吧

使用特权

评论回复
5
taogaowei| | 2017-1-3 13:47 | 只看该作者
18的具体哪个型号呢?原理图可否给大家看一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

1

粉丝