查看: 2442|回复: 1

[MQX] 感觉MQX FlexCAN 驱动的两个函数有Bug,大家看看是不是这么

[复制链接]

该用户从未签到

17

主题

66

帖子

0

中级会员

Rank: 3Rank: 3

积分
280
最后登录
2016-7-30
发表于 2015-10-21 20:37:50 | 显示全部楼层 |阅读模式
在研究想让FlexCAN的MB同时能接收Standard Frame和 Extended Frame时发现MQX 的FLEXCAN驱动的这两个函数应该有Bug,
大家看看是不是这么回事?
FLEXCAN_Write 和FLEXCAN_Read的功能为写入或读出FLEXCAN模块的32bit 寄存器值
但是源代码中是这样返回的
FLEXCAN_Read : *data_ptr = (uint32_t) *(unsigned char *)read_ptr;
FLEXCAN_Write:  *(unsigned char *)write_ptr = (unsigned char)value;

导致读出和写入都只是8位字节操作,无法实现需要的功能,我修改为
FLEXCAN_Read: *data_ptr = *(uint32_t *)read_ptr;
FLEXCAN_Write: *(uint32_t *)write_ptr = value;
这样就可以正常返回寄存器的32位值了。这个代码是不是从8位机上拷贝过来的啊。

各位兄弟如何看?
我知道答案 目前已有1人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-1-6 07:38
  • 签到天数: 736 天

    连续签到: 1 天

    [LV.9]以坛为家II

    21

    主题

    3486

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    5093
    最后登录
    2024-1-7
    发表于 2015-10-22 08:57:57 | 显示全部楼层
    帮顶一下
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-22 10:23 , Processed in 0.087470 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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