嵌入式技术论坛
直播中

张宇

7年用户 1654经验值
私信 关注
[问答]

在drv_can存在一个设置CAN速率的BUG?

STM32f103 rt-thread 版本4.0.2,可能是的用的rt-thread版本较低,在drv_can存在一个设置CAN速率的BUG,322行

case RT_CAN_CMD_SET_BAUD:
        argval = (rt_uint32_t) arg;
        if (argval != CAN1MBaud &&
                argval != CAN800kBaud &&
                argval != CAN500kBaud &&
                argval != CAN250kBaud &&
                argval != CAN125kBaud &&
                argval != CAN100kBaud &&
                argval != CAN50kBaud  &&
                argval != CAN20kBaud  &&
                argval != CAN10kBaud)
        {
            return -RT_ERROR;
        }
arg为传入参数void类型指针,argval这样提取数码是不正确
应该改为

argval = *(rt_uint32_t*) arg;


回帖(1)

孙成红

2023-5-12 15:16:33
其实驱动部分可以拉取最新代码试一下.旧代码会有bug的部分,可能代码有修复.没必要自己再做一次
举报

更多回帖

发帖
×
20
完善资料,
赚取积分