OpenEdv-开源电子网

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

STM32控制器,TJA1050模块,做CAN发送与接收实验,只能发送成功,不能接收到数据,求指导!

[复制链接]

22

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2012-4-17
在线时间
0 小时
发表于 2013-10-21 14:44:36 | 显示全部楼层 |阅读模式
如题,用的是stm32 mini 开发板和STM32VE最小系统版,各个板子的回环模式均测试通过,用TJA1050将两块板子的CAN模块连接到一起,只能发送成功,不能接收到发送的数据,求指导。例程和图均粘出。


CAN.C文件均是原子的实验,接收实验代码:
int main(void)
{
u8 key;
u8 i=0,t=0;
u8 cnt=0;
u8 canbuf[8]="acdvs";
u8 res;
u8 mode=0;//CAN工作模式;0,普通模式;1,环回模式

  Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72);   //延时初始化
  CAN_Mode_Init(1,8,7,5,mode);//CAN初始化,波特率450Kbps    

  while(1)
{
key=Can_Receive_Msg(canbuf);
if(key)//接收到有数据 
{
TransChar(canbuf);
TransChar("\r\n");
TransChar("Receive OK!\r\n");
}
else 
TransChar("Receive Failed\r\n");
delay_ms(300);   
}
发送数据代码:
int main(void)
{
u8 key;
u8 i=0,t=0;
u8 cnt=0;
u8 canbuf[8]="acdvs";
u8 res;
u8 mode=0;//CAN工作模式;0,普通模式;1,环回模式

  Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72);   //延时初始化 
  CAN_Mode_Init(1,8,7,5,mode);//CAN初始化,波特率450Kbps    

  while(1)
{

TransChar("Send Data:\r\n");
res=Can_Send_Msg(canbuf,8);//发送8个字节
if(res)
TransChar("Failed\r\n"); //提示发送失败
else 
TransChar("Send Ok\r\n"); //提示发送成功
memset(canbuf,0,8); //清空 数组 看是否收到了数据
delay_ms(300);   
}
}
希望能给与指导,万分感谢!

can接收发送实验.rar

1.16 MB, 下载次数: 1340

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-21 14:58:05 | 显示全部楼层
连线没有问题吧?
代码貌似你是参考的战舰板的,只要连线没问题,直接可以测试成功的哦。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

22

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2012-4-17
在线时间
0 小时
 楼主| 发表于 2013-10-21 15:02:28 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
连线应该是没问题的吧,检查了好几遍,而且两块板子的回环模式都是通的,用哪一块板子发送都能发送成功,但是就是接收不到,原子哥,有啥指导性建议没有,这个搞不出来,急死了
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-10-21 15:24:32 | 显示全部楼层
回复【3楼】everyday666:
---------------------------------
还没搞过,帮顶。。。
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

22

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2012-4-17
在线时间
0 小时
 楼主| 发表于 2013-10-21 15:27:36 | 显示全部楼层
回复【4楼】Badu_Space:
---------------------------------
多谢,搞不出来,苦逼的很。。
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2013-10-21 15:39:58 | 显示全部楼层
回复【5楼】everyday666:
---------------------------------
没事,多看下资料和例程,慢慢研究一番,应该会有收获的
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

22

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2012-4-17
在线时间
0 小时
 楼主| 发表于 2013-10-21 16:19:13 | 显示全部楼层
回复【6楼】Badu_Space:
---------------------------------
恩,多谢鼓励!!
回复 支持 反对

使用道具 举报

22

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2012-4-17
在线时间
0 小时
 楼主| 发表于 2013-10-21 16:20:41 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,通了,呵呵。。我把程序电路重新接了一下就通了,有一点我很好奇,为什么不能发送字符串,只可以发送一个一个的数呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-21 22:25:36 | 显示全部楼层
回复【8楼】everyday666:
---------------------------------
稍微改下代码,就可以发送字符串啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

22

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2012-4-17
在线时间
0 小时
 楼主| 发表于 2013-10-22 09:17:56 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
好,我仔细研究下,多谢原子哥!
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2013-10-22 10:17:04 | 显示全部楼层
参考用printf发送字符串的例子吧
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2014-2-21
在线时间
0 小时
发表于 2014-2-21 16:02:11 | 显示全部楼层
专业供应汽车OBD芯片 CAN 芯片

PIC18F25K80-I/SS  500k
PIC18F46K20-I/PT  500K
STM32F103RBT6   100K

CAN
TJA1055T  50K
TJA1050T  50K
TJA1040T  50K
TJA1041AT 50K
TJA1042T   50K
MCP2551T-I/SO 80K

车钥匙
PCF7991AT/1081/M  200k
PCF7936AA/3851/C  200k
PCF7936AS/3851/C,122  200k
PCF7935AS/3851,122    200k

欢迎技术交流
QQ/TEL:15889617160
回复 支持 反对

使用道具 举报

34

主题

178

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2013-11-1
在线时间
183 小时
发表于 2014-9-5 13:54:50 | 显示全部楼层
回复【8楼】everyday666:
---------------------------------
重新焊接还是怎么的??
回复 支持 反对

使用道具 举报

13

主题

225

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
289
金钱
289
注册时间
2013-11-12
在线时间
29 小时
发表于 2015-3-23 11:51:10 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我的是发送失败,但是却能接收到数据!是什么情况
回复 支持 反对

使用道具 举报

2

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
127
金钱
127
注册时间
2016-5-28
在线时间
32 小时
发表于 2016-5-30 07:41:36 | 显示全部楼层
正点原子 发表于 2013-10-21 14:58
连线没有问题吧?
代码貌似你是参考的战舰板的,只要连线没问题,直接可以测试成功的哦。

原子哥,我买了一个TJA1050CAN模块,这个RX、TX可以直接连接到最小系统的复用CAN模式引脚上,之后CANH和CANL和探索者的CAN端子相连,这样连接的方式是不是没有问题,最近在zuoCAN通信,程序应该没有什么问题,和一楼出现的问题一样。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-10 00:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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