求助:CAN无法发送

2019-08-17 04:01发布

如题:(就2个金币了 都给了)
利用原子哥的CAN  实验程序改动了一下,基本设置都没改  发现无法发送,
但是如果  我收到数据后  才可以发送  
想问一下,为什么CAN接收到数据后才可以发送?  如果接收不到数据就一直无法发送?

具体程序如下:(配置函数都用的 原子哥的程序)
int main(void)
{         
        u8 key;
        u8 i=0,t=0;
        u8 cnt=0;
        u8 canbuf[8] = {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01};
        u8 res;
       
        NVIC_Configuration();          
        CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_8tq,CAN_BS1_9tq,5,CAN_Mode_Normal);//我这是400K 波特率         
        while(1)
        {
                uint8_t flag =  Can_Receive_Msg(canbuf);  //  这一直接收
                uint8_t i,j;
                for(i=0;i<255;i++)
                {
                        for(j=0;j<255;j++);
                }
                res=Can_Send_Msg(canbuf,8);   //这一直发送  但是如果上面接收的数据接收不到  这的发送 就一直发不出去  

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
Mozie
1楼-- · 2019-08-17 23:29
来人啊。。。。。
正点原子
2楼-- · 2019-08-17 23:33
在while里面定义,我们例程不支持吧,你改了什么东西啊
Mozie
3楼-- · 2019-08-18 04:55
正点原子 发表于 2017-7-3 00:08
在while里面定义,我们例程不支持吧,你改了什么东西啊

C99的标准  可以支持  while 里面定义
Mozie
4楼-- · 2019-08-18 05:36
正点原子 发表于 2017-7-3 00:08
在while里面定义,我们例程不支持吧,你改了什么东西啊

原子哥   这个为什收到数据才能发送成功啊   

一周热门 更多>