OpenEdv-开源电子网

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

战舰V3的can通讯历程我不用两块开发板我直接用ECAN TOOLS发送数据一直报错

[复制链接]

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
发表于 2020-8-26 09:07:09 | 显示全部楼层 |阅读模式
目前就是正常模式下,通过Ecan_tools发送数据,Receive Data没有数据显示在屏幕上,附can初始化代码

Ecan_Tools工具可以正常接收

Ecan_Tools工具可以正常接收

用的战舰V3can实验没有改动

用的战舰V3can实验没有改动
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

98

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2012-7-29
在线时间
19 小时
发表于 2020-8-27 19:42:53 | 显示全部楼层
wangzhijiang 发表于 2020-8-27 09:06
波特率OK,只是单纯的CAN,没有跑协议需要确定准确采样点吗?

最好设置在合理的范围
回复 支持 反对

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-8-26 09:08:04 | 显示全部楼层
u8 CAN_Mode_Init(u8 tsjw,u8 tbs2,u8 tbs1,u16 brp,u8 mode)
{

        GPIO_InitTypeDef GPIO_InitStructure;
        CAN_InitTypeDef        CAN_InitStructure;
        CAN_FilterInitTypeDef  CAN_FilterInitStructure;
#if CAN_RX0_INT_ENABLE
           NVIC_InitTypeDef  NVIC_InitStructure;
#endif

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能PORTA时钟                                                                                                                    

          RCC_APB1PeriphClockCmd(RCC_APB1Periph_CAN1, ENABLE);//使能CAN1时钟       

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        //复用推挽
    GPIO_Init(GPIOA, &GPIO_InitStructure);                //初始化IO
   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//上拉输入
    GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化IO
          
        //CAN单元设置
        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;                                                 //优先级由报文标识符决定 //
          CAN_InitStructure.CAN_Mode= mode;                 //模式设置: mode:0,普通模式;1,回环模式; //
          //设置波特率
          CAN_InitStructure.CAN_SJW=tsjw;                                //重新同步跳跃宽度(Tsjw)为tsjw+1个时间单位  CAN_SJW_1tq         CAN_SJW_2tq CAN_SJW_3tq CAN_SJW_4tq
          CAN_InitStructure.CAN_BS1=tbs1; //Tbs1=tbs1+1个时间单位CAN_BS1_1tq ~CAN_BS1_16tq
          CAN_InitStructure.CAN_BS2=tbs2;//Tbs2=tbs2+1个时间单位CAN_BS2_1tq ~        CAN_BS2_8tq
          CAN_InitStructure.CAN_Prescaler=brp;            //分频系数(Fdiv)为brp+1        //
          CAN_Init(CAN1, &CAN_InitStructure);            // 初始化CAN1

        CAN_FilterInitStructure.CAN_FilterNumber=0;          //过滤器0
        CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;
          CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit; //32位
          CAN_FilterInitStructure.CAN_FilterIdHigh=0x0000;////32位ID
          CAN_FilterInitStructure.CAN_FilterIdLow=0x0000;
          CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0x0000;//32位MASK
          CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0000;
          CAN_FilterInitStructure.CAN_FilterFIFOAssignment=CAN_Filter_FIFO0;//过滤器0关联到FIFO0
        CAN_FilterInitStructure.CAN_FilterActivation=ENABLE; //激活过滤器0

          CAN_FilterInit(&CAN_FilterInitStructure);//滤波器初始化
#if CAN_RX0_INT_ENABLE
       
        CAN_ITConfig(CAN1,CAN_IT_FMP0,ENABLE);//FIFO0消息挂号中断允许.                    
  
          NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
          NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;     // 主优先级为1
          NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;            // 次优先级为0
          NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
          NVIC_Init(&NVIC_InitStructure);
#endif
        return 0;
}   
回复 支持 反对

使用道具 举报

16

主题

98

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2012-7-29
在线时间
19 小时
发表于 2020-8-26 17:00:37 | 显示全部楼层
你波特率对的上吗,采样点是否合理?
回复 支持 反对

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-8-27 09:06:42 | 显示全部楼层
小猪siyuan 发表于 2020-8-26 17:00
你波特率对的上吗,采样点是否合理?

波特率OK,只是单纯的CAN,没有跑协议需要确定准确采样点吗?
回复 支持 反对

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-8-28 10:25:17 | 显示全部楼层
小猪siyuan 发表于 2020-8-27 19:42
最好设置在合理的范围

ok  已解决
回复 支持 反对

使用道具 举报

16

主题

98

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2012-7-29
在线时间
19 小时
发表于 2020-8-28 10:39:54 | 显示全部楼层

是什么问题
回复 支持 反对

使用道具 举报

17

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2020-7-16
在线时间
34 小时
 楼主| 发表于 2020-9-8 18:09:44 | 显示全部楼层

基础配置的问题,采样点
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2022-10-10
在线时间
1 小时
发表于 2022-10-10 16:37:03 | 显示全部楼层
wangzhijiang 发表于 2020-9-8 18:09
基础配置的问题,采样点

需要设置成采样3次?
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 01:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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