请教有关CRC校验的问题

2019-08-17 04:20发布

我用了STM32F103上的3个USART串口,其中两个要用到CRC校验。。。为此建了一个crc.h文件(crc.h文件有 CRC 高位字节值表const u8 auchCRCHi[]、 CRC低位字节值表const u8 auchCRCLo[],以及生成CRC校验码函数u16 CRC16(u8 *puchMsg, u16 usDataLen) )。。。。在三个USART串口C文件中,当crc.h被其中任一USART串口C文件引用时整个工程源码可以顺利编译通过,若当其中有两个串口C文件引用crc.h时就死活通不过了。。。会出现这样的提示信息:
..OBJBL_xfj.axf: Error: L6200E: Symbol auchCRCHi multiply defined (by usart1.o and usart3.o)
..OBJBL_xfj.axf: Error: L6200E: Symbol auchCRCLo multiply defined (by usart1.o and usart3.o).
..OBJBL_xfj.axf: Error: L6200E: Symbol CRC16 multiply defined (by usart1.o and usart3.o).

对于这样类似的信息如果是通常的变量。。。那只要加上个“extern”关键词就可解决了。。。。可是对于这样的校验头文件我是没办法了。。。恳请诸位大侠高手多多指点。。。。。
是不是CRC校验。。。不能在多个C文件上使用?????????
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-08-17 04:25
被多个.c文件调用的头文件里面,不可以定义变量,数组等,否则就会报错。
ygyh
2楼-- · 2019-08-17 08:52
正点原子 发表于 2017-6-30 16:53
被多个.c文件调用的头文件里面,不可以定义变量,数组等,否则就会报错。

定义的函数也不行吗?。。。。恳请指教


一周热门 更多>