今日关注:【沁恒CH32V208开发板试用】增加适配CAN的驱动
增加rtthread源代码中适配ch32v20x的drv_can c。
2023-04-23 14:07:40
【资料图】
今天拿到rtthread的ch32v208的rtthread驱动,在配置好驱动后,scons时报错,找不到can2的错误,我查看我的rtconfig.h文件,明明没有定义CAN2,明一直提示出错。经查看手册,ch32v208只有一个can设备,而原来的驱动只适配了ch32v307的驱动。经我一天的修改,终于把ch32v208适配了。
经查看原来的代码为:
#ifdef BSP_USING_CAN1static struct ch32v307x_can_obj drv_can1 ={ .name = "can1", .can_base = CAN1,};#endif#ifdef BSP_USING_CAN2 static struct ch32v307x_can_obj drv_can2 = { .name = "can2", .can_base = CAN2, }; #endif
为了让编译器不去编译CAN2,所以我选择用条件编译来匹配两款不同的芯片修改后代码如下:
#ifdef BSP_USING_CAN1static struct ch32v307x_can_obj drv_can1 ={ .name = "can1", .can_base = CAN1,};#endif#ifdef CH32V30x_D8C #ifdef BSP_USING_CAN2 static struct ch32v307x_can_obj drv_can2 = { .name = "can2", .can_base = CAN2, }; #endif#endif
经过修改后的代码如下代码我已经提交到github。这里附件如下:
*附件:drv_can.zip
经修正后,就愉快的可以编译使用rtthread 的drv_can驱动了:
审核编辑 黄宇
标签: