12
返回列表 发新帖
楼主: zhangdachao

[CodeWarrior] CW10.7 PE配置CAN,运行问题

[复制链接]
  • TA的每日心情
    擦汗
    2018-6-12 16:47
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    16

    主题

    62

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    321
    最后登录
    2020-10-13
     楼主| 发表于 2018-4-19 11:42:08 | 显示全部楼层
    本帖最后由 zhangdachao 于 2018-4-19 11:49 编辑
    小恩GG 发表于 2018-4-19 09:17
    你用的什么板子呢?
    官方的吗,把版本报给我看看。如果我的这个代码你那边都有问题,应该和硬件有关了。 ...

    哥,板子是公司的产品,我拿过来当开发板学习。他们用IAR通讯成功了,我用CW10.7的PE一直没通讯成功。实在是不知道怎么解决了。
      哥,您可以用CW10.7帮我配个吗,总线24M,波特率是500k,回环不使能,先实现发送。

    CAN.png
    CAN芯片.png
    直播没看全
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24884
    最后登录
    2025-7-20
    发表于 2018-4-19 13:38:25 | 显示全部楼层
    zhangdachao 发表于 2018-4-19 11:42
    哥,板子是公司的产品,我拿过来当开发板学习。他们用IAR通讯成功了,我用CW10.7的PE一直没通讯成功。实在 ...

    这个就奇怪了,我给你的代码就是能工作的代码。
    你现在有没有接外面的CAN调试器呢?要接CAN 调试器的,然后看看有没有收到标准帧和扩展帧?
      MyCANPtr = CAN1_Init(NULL);                                     /* Initialization of CAN2 component */  
       
        Frame.MessageID = 0x123U;                                       /* Set Tx ID value - standard */  
        Frame.FrameType = LDD_CAN_DATA_FRAME;                           /* Specyfying type of Tx frame - Data frame */
        Frame.Length = sizeof(OutData);                                 /* Set number of bytes in data frame - 4B */
        Frame.Data = OutData;                                           /* Set pointer to OutData buffer */
        DataFrameTxFlg = FALSE;                                         /* Initialization of DataFrameTxFlg */
        Error = CAN1_SendFrame(MyCANPtr, 1U, &Frame);                   /* Sends the data frame over buffer 0 */
        while (!DataFrameTxFlg) {                                       /* Wait until data frame is transmitted */
        }

        Frame.MessageID = (0x123456U | LDD_CAN_MESSAGE_ID_EXT);         /* Set Tx ID value - extended */  
        Frame.FrameType = LDD_CAN_DATA_FRAME;                           /* Specyfying type of Tx frame - Data frame */
        Frame.Length = sizeof(OutData);                                 /* Set number of bytes in data frame - 4B */
        Frame.Data = OutData;                                           /* Set pointer to OutData buffer */
        DataFrameTxFlg = FALSE;                                         /* Clear DataFrameTxFlg */
        Error = CAN1_SendFrame(MyCANPtr, 1U, &Frame);                   /* Sends the data frame over buffer 0 */
        while (!DataFrameTxFlg) {                                       /* Wait until data frame is transmitted */
        }
       
       
        while (!DataFrameRxFlg) {                                       /* Wait until data frame is received */
         }
         Frame.Data = InpData;                                           /* Set pointer to InpData buffer */
         Error = CAN1_ReadFrame(MyCANPtr, 0U, &Frame);
    这个代码是我之前给客户做的,也测试过的。
    你把CAN节点接上啊,时钟不行,你在用示波器测试下CAN_TX看看有没有波形出来。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-6-12 16:47
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    16

    主题

    62

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    321
    最后登录
    2020-10-13
     楼主| 发表于 2018-4-19 21:22:52 | 显示全部楼层
    小恩GG 发表于 2018-4-19 13:38
    这个就奇怪了,我给你的代码就是能工作的代码。
    你现在有没有接外面的CAN调试器呢?要接CAN 调试器的,然 ...

    哥,换了个板,程序可以跑了,下面是波形,但是上位机没用收到。波特率已经改成了500kbps。我把发送函数放到for循环了。
    上位机.png
    示波器.jpg
    直播没看全
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-6-12 16:47
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    16

    主题

    62

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    321
    最后登录
    2020-10-13
     楼主| 发表于 2018-4-19 22:15:34 | 显示全部楼层
    zhangdachao 发表于 2018-4-19 21:22
    哥,换了个板,程序可以跑了,下面是波形,但是上位机没用收到。波特率已经改成了500kbps。我把发送函数 ...

    哥,问题解决了,是插座没接好。现在已经通讯成功了。非常感谢您。
    直播没看全
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24884
    最后登录
    2025-7-20
    发表于 2018-4-20 10:08:31 | 显示全部楼层
    zhangdachao 发表于 2018-4-19 22:15
    哥,问题解决了,是插座没接好。现在已经通讯成功了。非常感谢您。

    好的,因为我给你的代码都是经过测试的,所以如果还不通,真的要考虑硬件的问题了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 03:30 , Processed in 0.093812 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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