求助,两个板子进行CAN总线通信不通。。。。。。。

2019-07-20 13:40发布

我用两个板子进行CAN通信,一个是STM32F103RC一个是探索者STMF407,我让f103发送,f407接收,只能发送成功,但是接收不成功是怎么回事?f407环回模式正常。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
23条回答
蓝风3101
1楼-- · 2019-07-21 07:23
 精彩回答 2  元偷偷看……
蓝风3101
2楼-- · 2019-07-21 10:21
        CAN1_Mode_Init(CAN_SJW_1tq,CAN_BS2_7tq,CAN_BS1_7tq,7,0);//         400KB                                                          
while(1)
        {
                key=KEY_Scan(0);
                if(key==KEY0_PRES)//KEY0°′ÏÂ,·¢Ëíò»′Îêy¾Y
                {
                        for(i=0;i<8;i++)
                        {
                                canbuf[i]=cnt+i;//ì&#238;3&#228;·¢&#203;í&#187;o3&#229;&#199;&#248;
                                printf("TX:canbuf[%d]=%d ",i,canbuf[i]);
                        }
                        res=CAN1_Send_Msg(canbuf,8);//·发送
                if(res)
                                printf("TX:fail ");                //失败
                        else
                                printf("TXk ");                         //成功                                                                  
                }
蓝风3101
3楼-- · 2019-07-21 15:10
        CAN_Mode_Init(CAN_SJW_1tq,CAN_BS2_7tq,CAN_BS1_7tq,6,CAN_Mode_Normal);        //f103,也是400
       key=Can_Receive_Msg(canbuf);
                printf("RX:key=%d ",key);
                if(key)//&#189;óê&#213;μ&#189;óDêy&#190;Y
                {                       
                        printf("receive OK ");       
                        for(i=0;i<key;i++)
                        {               
                                        if(i<4)
                                                printf("RX:canbuf[%d]=%d ",i,canbuf[i]);
                                  else
                                                printf("RX:canbuf[%d]=%d ",i,canbuf[i]);
                        }
                        printf("end ");
                }
蓝风3101
4楼-- · 2019-07-21 20:46
 精彩回答 2  元偷偷看……
yuanxinfei
5楼-- · 2019-07-21 21:28
 精彩回答 2  元偷偷看……
蓝风3101
6楼-- · 2019-07-22 00:34
yuanxinfei 发表于 2016-1-14 10:59
can接收不都是用中断接收的吗,你这各没看懂。。。
中断部分:void CAN1_RX0_IRQHandler(void)
{

这些都没问题的,两个板子环回正常,但是CANH--CANH,CANL--CANL时候,判断库函数,数据发送出去了,但是端口并没用变化,说明数据没发到另外一个板子的接收器那里

一周热门 更多>