OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 24925|回复: 13

STM32103 调试CAN 返回的始终是CAN_TxStatus_Pending 有人遇到过吗?

[复制链接]

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
发表于 2013-5-22 11:08:30 | 显示全部楼层 |阅读模式
STM32103 调试CAN 返回的始终是CAN_TxStatus_Pending 有人遇到过吗?
u8 Can_Send_Msg(u8* msg,u8 len)
{
  u8 mbox;
  u16 i=0;
  CanTxMsg TxMessage;
  TxMessage.StdId=0x01; // 标准标识符为0
  TxMessage.ExtId=0x00; // 设置扩展标示符(29位)
  TxMessage.IDE=0; // 使用扩展标识符
  TxMessage.RTR=0; // 消息类型为数据帧,一帧8位
  TxMessage.DLC=len; // 发送8帧信息
  for(i=0;i<8;i++)
  TxMessage.Data=msg; // 第一帧信息          
  mbox= CAN_Transmit(CAN1, &TxMessage);   
  i=0;
//while((CAN_TransmitStatus(CAN1, mbox)!=CAN_TxStatus_Failed)&&(i<0XFFF))i++; //等待发送结束
//if(i>=0XFFF)return 1;
//return 0;
  return CAN_TransmitStatus(CAN1, mbox);
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-5-22 11:18:39 | 显示全部楼层
用环回模式调试,返回的值也是CAN_TxStatus_Pending,搞不懂了,有没有人哪位大神能帮帮忙啊
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-22 15:03:17 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-5-24 12:32:23 | 显示全部楼层
回复【3楼】正点原子:

http://www.openedv.com/posts/list/13176.htm

---------------------------------
版主,还有问题想请教你一下,我被BxCAN 、PeliCAN 和BasicCAN 这三种方式搞晕掉了 SJA1000与STM32F103 通讯时,SJA1000 应该用哪种方式,是PeliCAN 还是BasicCAN?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-5-24 21:17:22 | 显示全部楼层
sja1000我也没用过哦...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-6-6 11:08:17 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
我用SJA1000在PeliCAN模式下,可以发给STM32了,stm32根据我发送过来的ID 能收到也能屏蔽了,但是我在STM32中使用Can_Send_Msg(u8* msg,u8 len)这个函数发送8个数据  返回的还是1:失败,具体查明后始终是Pending,我就百思不得其解了,版主能给点意见吗,你上次给我的链接我看了,是你的例程。
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-6-6 11:50:38 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
while((CAN_TransmitStatus(CAN1, mbox)!=CAN_TxStatus_Failed)&&(i<0XFFF))i++; //等待发送结束  
正兄,这句话是不是有点小问题,我在CAN_TransmitStatus(CAN1, mbox)中追踪了state的值,发现返回的是1,应该是TxStatus_OK吧
回复 支持 反对

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2013-6-6 11:57:03 | 显示全部楼层

 最新的:
u8 Can_Send_Msg(u8* msg,u8 len)

  u8 mbox;
  u16 i=0;
  CanTxMsg TxMessage;
  TxMessage.StdId=0x12;      // 标准标识符为0
  TxMessage.ExtId=0x12;     // 设置扩展标示符(29位)
  TxMessage.IDE=0;    // 使用扩展标识符
  TxMessage.RTR=0;   // 消息类型为数据帧,一帧8位
  TxMessage.DLC=len;        // 发送两帧信息
  for(i=0;i<len;i++)
  TxMessage.Data=msg;     // 第一帧信息         
  mbox= CAN_Transmit(CAN1, &TxMessage);  
  i=0;
  while((CAN_TransmitStatus(CAN1, mbox)==CAN_TxStatus_Failed)&&(i<0XFFF))i++; //等待发送结束
  if(i>=0XFFF)return 1;
  return 0;  

}

我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-6-6 12:56:19 | 显示全部楼层
回复【8楼】Admin:
---------------------------------
果然啊,跪谢站长了啊!让我这迷途小羊找到了顿开之路啊!
回复 支持 反对

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-6-11
在线时间
0 小时
发表于 2013-8-13 00:05:04 | 显示全部楼层
我也遇到一样的问题。楼上为什么没有给出解决的办法啊  啊啊 啊啊啊 啊啊
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-8-13 08:58:33 | 显示全部楼层
回复【10楼】huangxiaowei:
---------------------------------
具体解决办法我忘了,我在坛子中上传了我成功的贴,你找下看看
回复 支持 反对

使用道具 举报

9

主题

83

帖子

0

精华

高级会员

Rank: 4

积分
647
金钱
647
注册时间
2013-3-28
在线时间
64 小时
 楼主| 发表于 2013-8-13 08:59:10 | 显示全部楼层
回复【10楼】huangxiaowei:
---------------------------------

分享STM32F103的BxCAN与SJA1000的PeliCAN标准模式收发通讯成功
回复 支持 反对

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-6-11
在线时间
0 小时
发表于 2013-8-13 10:13:13 | 显示全部楼层
谢谢楼主,
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2014-8-15
在线时间
0 小时
发表于 2014-8-15 14:12:52 | 显示全部楼层
回复【12楼】zkevin8879:
---------------------------------
还是不明白CAN_TxStatus_Pending这个问题是怎么解决的?楼主能详细说一下吗
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-3 13:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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