STM32 CAN 在总线断开的时候怎么检测发送成功

2019-07-21 06:04发布



    STM32 CAN 在总线断开的时候怎么检测发送成功,现在两个节点互发数据 我把数据线断开怎么还是发送成功呢?

                          if(CAN_GetFlagStatus(CAN1,CAN_FLAG_BOF)==SET)
                        LCD_ShowString(60+80,190,200,16,16,"Failed");                //提示发送失败
                        else LCD_ShowString(60+80,190,200,16,16,"OK    ");                         //提示发送成功       

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-21 10:55
帮顶
哆啦A萌
2楼-- · 2019-07-21 13:01
配置上是否设置了重发,还是单次发送?
swa00000
3楼-- · 2019-07-21 14:13
哆啦A萌 发表于 2018-11-21 11:03
配置上是否设置了重发,还是单次发送?

        CAN_InitStructure.CAN_TTCM=DISABLE;                        //非时间触发通信模式  
        CAN_InitStructure.CAN_ABOM=DISABLE;                        //软件自动离线管理         
        CAN_InitStructure.CAN_AWUM=DISABLE;                        //睡眠模式通过软件唤醒(清除CAN->MCR的SLEEP位)
        CAN_InitStructure.CAN_NART=ENABLE;                        //禁止报文自动传送
        CAN_InitStructure.CAN_RFLM=DISABLE;                         //报文不锁定,新的覆盖旧的  
        CAN_InitStructure.CAN_TXFP=DISABLE;                        //优先级由报文标识符决定
swa00000
4楼-- · 2019-07-21 15:16
 精彩回答 2  元偷偷看……
slsdz
5楼-- · 2019-07-21 18:57
本帖最后由 slsdz 于 2018-11-21 21:37 编辑

调试一下,看看寄存器的状态
发送错误计数器的值超过255时,此节才会处于离线状态。可以短接H L
朱伟程
6楼-- · 2019-07-21 21:43
看他的函数里面貌似只要把数据丢出去就算发送成功,要看总线设备具体有没有通信成功估计要查ack。所以老哥你解决了吗

一周热门 更多>