小刀十六式 发表于 2016-8-23 08:45:04

关于KEIL建立CAN_API工程的时候编译出错的问题?

我在建立工程的时候,在Manage的CMSIS Driver选项中勾选了CAN_API结果编译出错。为什么会在这里加上这么一条语句???去掉#error编译通过后。好多的警告???该怎么加入CAN_API???

发表于 2016-8-23 09:43:18

这个是用来提示错误的,说明RTE_CAN1和RTE_CAN2中的一个没有定义使用。没有用过这个库,楼主方便把工程上传吗?

小刀十六式 发表于 2016-8-23 09:49:47

安 发表于 2016-8-23 09:43
这个是用来提示错误的,说明RTE_CAN1和RTE_CAN2中的一个没有定义使用。没有用过这个库,楼主方便把工程上传 ...

看不懂为什么会写上#if#error这条语句。

小刀十六式 发表于 2016-8-23 09:59:59

安 发表于 2016-8-23 09:43
这个是用来提示错误的,说明RTE_CAN1和RTE_CAN2中的一个没有定义使用。没有用过这个库,楼主方便把工程上传 ...

RTE_CAN1和RTE_CAN2在RTE_Device.h定义了。都是0.
RTE_Drivers_CAN1和RTE_Drivers_CAN2在RTE_Components.h定义了
宏定义
#define RTE_Drivers_CAN1                /* Driver CAN1 */
      #define RTE_Drivers_CAN2                /* Driver CAN2 */
感觉怪怪的!

发表于 2016-8-23 11:08:53

#if和#endif是一组同时使用的,叫做条件编译指令。如果满足条件就进入错误提示。楼主可以网上搜一下这个使用方法。

发表于 2016-8-23 11:15:05

RTE_Device.h中,RTE_CAN1修改为1。

小刀十六式 发表于 2016-8-23 11:47:14

本帖最后由 小刀十六式 于 2016-8-23 11:50 编辑

安 发表于 2016-8-23 11:08
#if和#endif是一组同时使用的,叫做条件编译指令。如果满足条件就进入错误提示。楼主可以网上搜一下这个使 ...
为什么设置RTE_CAN1为1 就好了?
是哪里出错了?
设MX_CAN1这个变量的问题吗?我在CAN_STM32F10x.c里多次看到这个变量

发表于 2016-8-23 11:52:22

楼主,你看一下这个定义上面怎么写的。都写的很明白。

小刀十六式 发表于 2016-8-23 12:21:14

安 发表于 2016-8-23 11:52
楼主,你看一下这个定义上面怎么写的。都写的很明白。

噢~通过RTE_Device.h配置文件!

z258121131 发表于 2016-8-24 08:45:05

学习学习
页: [1] 2 3
查看完整版本: 关于KEIL建立CAN_API工程的时候编译出错的问题?