硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5460|回复: 4
收起左侧

[有问必答] 请教一下 stm32 can方面的问题

[复制链接]

32

主题

97

回帖

193

积分

初级会员

积分
193
发表于 2016-1-24 18:55:10 | 显示全部楼层 |阅读模式
现在用计算机的周立功 PCI9820I CAN卡 做主机 和stm32 can做为从机相互通信,现在发现有时从机给主机发送数据有时丢失,两种情况下出现丢失:
1.多个从机同时发送数据,会出现数据丢失
2.有个时间从机给主机发送数据出现丢失

现在用stm32f103 can 发送数据时,用什么语句能判断出发送数据丢失?我用了
mbox= CAN_Transmit(CAN1, &TxMessage);   
  i=0;
  while((CAN_TransmitStatus(CAN1, mbox)!=CAN_TxStatus_Ok)&&(i<0XFFF))i++;        //等待发送结束
  if(i>=0XFFF)return 1;

这个状态判断,感觉没用呀,
什么时候是CAN_TxStatus_Failed 状态,什么时候是CAN_TxStatus_Pending状态?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116765
QQ
发表于 2016-1-26 09:28:14 | 显示全部楼层
出现错误的时候,会触发CAN相应的错误标志。进入源码,看看下CAN_TxStatus_Failed和CAN_TxStatus_Pending都对应的是什么错误。
回复

使用道具 举报

32

主题

97

回帖

193

积分

初级会员

积分
193
 楼主| 发表于 2016-1-26 17:46:54 | 显示全部楼层

回 eric2013 的帖子

eric2013:出现错误的时候,会触发CAN相应的错误标志。进入源码,看看下CAN_TxStatus_Failed和CAN_TxStatus_Pending都对应的是什么错误。 (2016-01-26 09:28)
从机stm32f103往主机上发大量数据时,会有一些数据丢失,用stm32库函数如何判断出数据丢失?
回复

使用道具 举报

32

主题

97

回帖

193

积分

初级会员

积分
193
 楼主| 发表于 2016-1-26 18:17:51 | 显示全部楼层
mbox= CAN_Transmit(CAN1, &TxMessage);   
  i=0;
  while((CAN_TransmitStatus(CAN1, mbox)!=CAN_TxStatus_Ok)&&(i<0XFFF))i++;        //等待发送结束
  if(i>=0XFFF)return 1;
这么写返回的始终是CAN_TxStatus_Pending ,这是怎么回事?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116765
QQ
发表于 2016-1-28 15:20:28 | 显示全部楼层

回 beyondabcd 的帖子

beyondabcd:mbox= CAN_Transmit(CAN1, &TxMessage);  
  i=0;
  while((CAN_TransmitStatus(CAN1, mbox)!=CAN_TxStatus_Ok)&&(i<0XFFF))i++;        //等待发送结束
  if(i>=0XFFF)retu .. (2016-01-26 18:17) 
进入源码看下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-7-5 16:14 , Processed in 0.254211 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表