void Read_ID(u8 (*HLID)[4],u8 ID_num,u16 start_add)
{
u8 Send_Times;
u8 IDcount;
u32 i;
for(IDcount=0;IDcount<ID_num;IDcount++)
{
for(Send_Times=0;Send_Times<3;Send_Times++)
{
Uart2RebuildlongDate(0x03,start_add+2*IDcount,2,9);
Uart2_Send_Arry(Uart2Sendbuff,8);
RC2IE = 1;//enable recieve interrupt
i=100000; //60ms
while((!Uart2CommEndFlag)&&(i--));
RC2IE = 0;//disable recieve interrupt
if(Uart2CommEndFlag)//数据接收完成
{
Uart2CommEndFlag=0;
*(*(HLID+IDcount)+0)=Uart2Recdate[5];
*(*(HLID+IDcount)+1)=Uart2Recdate[6];
*(*(HLID+IDcount)+2)=Uart2Recdate[3];
*(*(HLID+IDcount)+3)=Uart2Recdate[4];
Uart1_Send_Arry(*(HLID+IDcount),4);
break;
}
else
{
continue;
}
}
}
}
把这个函数放在main.c文件里,编译没问题;但吧这个函数放在其他的.c文件编译出现这样的错误。
Error [1098] F:\CODE\RF-TVPO\RF-TVPO_v2.0\uart2cmd.h; 12. conflicting declarations for variable "F2643" (F:\CODE\RF-TVPO\RF-TVPO_v2.0\uart2cmd.h:12)
Error [1098] F:\CODE\RF-TVPO\RF-TVPO_v2.0\uart2cmd.c; 142. conflicting declarations for variable "_Read_ID" (F:\CODE\RF-TVPO\RF-TVPO_v2.0\uart2cmd.h:12)
在uart2cmd.h也做了声明
#ifndef _UART2CMD_H
#define _UART2CMD_H
#define H_START_ADD 0x0bb9
#define L_START_ADD 0x0bD9
#include "config.h"
u16 CRC_Test(u8* puchMSG, u8 usDataLen);
void Uart2RebuildDate(u8 Function,u8 AddressH,u8 AddressL,u8 DateH,u8 DateL);
void Uart2RebuildlongDate(u8 Function,u16 Address,u16 Date,u8 Re_len);
void Read_ID(u8 (*HLID)[4],u8 ID_num,u16 start_add);
#endif
实在是找不到问题出在哪里,但是如果把这个函数的u8 (*HLID)[4]这个参数去掉就可以编译通过
请各位帮忙分析一下问题出在哪里
|