OpenEdv-开源电子网

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

CAN LOOPBACK测试通过。NORMAL接收不到

[复制链接]

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-12-23
在线时间
0 小时
发表于 2015-5-8 18:50:03 | 显示全部楼层 |阅读模式
5金钱
硬件连接。我直接用杜邦线连接在一起的。。H和H连接。L和L连接。。。。用loopback模式自己可以接受到自己的。但另一边接收不到。。。弄成normal。接收中断函数都进不去。。测试接收端波形也没有波形。。。就算发送端的波形也没有

程序如下所示:

void CAN_Configuration(void)
{
  CAN_InitTypeDef        CAN_InitStructure;
  CAN_FilterInitTypeDef  CAN_FilterInitStructure;

 
  /* CAN register init */
  CAN_DeInit(CAN1);
  CAN_StructInit(&CAN_InitStructure);

  /* CAN cell init */
  CAN_InitStructure.CAN_TTCM = DISABLE;
  CAN_InitStructure.CAN_ABOM = DISABLE;
  CAN_InitStructure.CAN_AWUM = DISABLE;
  CAN_InitStructure.CAN_NART = DISABLE;
  CAN_InitStructure.CAN_RFLM = DISABLE;
  CAN_InitStructure.CAN_TXFP = ENABLE;
// CAN_InitStructure.CAN_Mode = CAN_Mode_LoopBack;    
 CAN_InitStructure.CAN_Mode = CAN_Mode_Normal;
  CAN_InitStructure.CAN_SJW = CAN_SJW_1tq;
  CAN_InitStructure.CAN_BS1 = CAN_BS1_4tq;
  CAN_InitStructure.CAN_BS2 = CAN_BS2_3tq;
  CAN_InitStructure.CAN_Prescaler = 45;

  CAN_Init(CAN1,&CAN_InitStructure);  

  CAN_FilterInitStructure.CAN_FilterNumber=0;
  CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
  CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;
  CAN_FilterInitStructure.CAN_FilterIdHigh=(((u32)0x0a0<<21)&0xffff0000)>>16;
  CAN_FilterInitStructure.CAN_FilterIdLow=(((u32)0x0a0<<21)|CAN_ID_STD|CAN_RTR_DATA)&0xffff;
  CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xffff;
  CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xffff;
  CAN_FilterInitStructure.CAN_FilterFIFOAssignment=0;
  CAN_FilterInitStructure.CAN_FilterActivation=ENABLE;

                       
  CAN_ITConfig(CAN1,CAN_IT_FMP0, ENABLE);     //接收中断使能

  CAN_FilterInit(&CAN_FilterInitStructure);
}


IO口:
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;                  //PA11:CAN-RX
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;        //输入上拉
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;      //PA12:CAN-TX
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    //复用模式
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOA, &GPIO_InitStructure);

中断:

 NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

最佳答案

查看完整内容[请看2#楼]

参考下我们的例程即可。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-8 18:50:04 | 显示全部楼层
参考下我们的例程即可。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-12-23
在线时间
0 小时
 楼主| 发表于 2015-5-8 23:34:00 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
可以给个链接吗??原子哥
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-12-23
在线时间
0 小时
 楼主| 发表于 2015-5-8 23:35:04 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
刚刚软件仿真。。看IO口波形。。发现TX也没有没波形。。。就知道程序错大了。。
回复

使用道具 举报

8

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2015-5-5
在线时间
0 小时
发表于 2015-5-13 15:52:44 | 显示全部楼层
回复【4楼】53299621:
---------------------------------
请问你的解决了吗?两个板子可以通信了吗?求助。。。。
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-12-23
在线时间
0 小时
 楼主| 发表于 2015-5-25 23:12:17 | 显示全部楼层
回复【5楼】kangwenhong1992:
---------------------------------
解决了。。。
回复

使用道具 举报

13

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
104
金钱
104
注册时间
2014-12-23
在线时间
0 小时
 楼主| 发表于 2015-5-25 23:14:36 | 显示全部楼层
回复【5楼】kangwenhong1992:
---------------------------------
我是两个地方错了。。。一个是ID号我给成01了。。是错的。。。   
另一个是CAN收发器供电电压给给小了。。我只给了3.3V应该给5V.但这个看个人的用的收发器是什么了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 02:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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