请问重定义的问题

1。本人用的是CH374,准备用spi和CH374通讯。为CH374子程序库调用的接口子程序写好 了。 2.我想把这些接口子程序单独放在一个文件中。 但是编译是出现了重定义。 Entry "CH374FileEnumer" in module forCH374LIB ( msp430forCH374\Debug\ Obj\forCH374LIB.r43 ) redefined in module forCH374LIB_base ( msp430forCH374\Debug\ Obj\forCH374LIB_base.r43 ) 附件就是这两个文件。 //******************forCH374LIB.c****************************** /* SPI接口子程序,供CH374子程序库调用 */ #include #include "all.h" #include "CH374HFF.H" extern void Spi374Start(unsigned char mAddr, unsigned char CMD_SPI_374READorWRITE); extern void Spi374Stop(void); extern unsigned char Spi374InByte(void); extern void Spi374OutByte(unsigned char mData);

UINT8 CH374_READ_REGISTER( UINT8 mAddr ) /* 外部定义的被CH374程序库调用的子程序,从指定寄存器读取数据 */ { UINT8 d; Spi374Start( mAddr, CMD_SPI_374READ ); d = Spi374InByte( ); Spi374Stop( ); return( d ); }

void CH374_WRITE_REGISTER( UINT8 mAddr, UINT8 mData ) /* 外部定义的被CH374程序库调用的子程序,向指定寄存器写入数据 */ { Spi374Start( mAddr, CMD_SPI_374WRITE ); Spi374OutByte( mData ); Spi374Stop( ); }

void CH374_READ_BLOCK( UINT8 mAddr, UINT8 mLen, PUINT8 mBuf ) /* 外部定义的被CH374程序库调用的子程序,从指定起始地址读出数据块 */ { Spi374Start( mAddr, CMD_SPI_374READ ); while ( mLen -- ) *mBuf++ = Spi374InByte( ); Spi374Stop( ); }

void CH374_WRITE_BLOCK( UINT8 mAddr, UINT8 mLen, PUINT8 mBuf ) /* 外部定义的被CH374程序库调用的子程序,向指定起始地址写入数据块 */ { Spi374Start( mAddr, CMD_SPI_374WRITE ); while ( mLen -- ) Spi374OutByte( *mBuf++ ); Spi374Stop( ); }

PUINT8 CH374_READ_BLOCK64( UINT8 mAddr, PUINT8 mBuf ) /* 外部定义的被CH374程序库调用的子程序,从双缓冲区读出64字节的数据块,返回当前地址 */ { UINT8 i; Spi374Start( mAddr, CMD_SPI_374READ ); for ( i = CH374_BLOCK_SIZE; i != 0; i -- ) *mBuf++ = Spi374InByte( ); Spi374Stop( ); return( mBuf ); }

PUINT8 CH374_WRITE_BLOCK64( UINT8 mAddr, PUINT8 mBuf ) /* 外部定义的被CH374程序库调用的子程序,向双缓冲区写入64字节的数据块,返回当前地址 */ { UINT8 i; Spi374Start( mAddr, CMD_SPI_374WRITE ); for ( i = CH374_BLOCK_SIZE; i != 0; i -- ) Spi374OutByte( *mBuf++ ); Spi374Stop( ); return( mBuf ); }

void CH374_WRITE_BLOCK_C( UINT8 mLen, PUINT8C mBuf ) /* 外部定义的被CH374程序库调用的子程序,向RAM_HOST_TRAN写入常量型数据块 */ { Spi374Start( RAM_HOST_TRAN, CMD_SPI_374WRITE ); do { Spi374OutByte( *mBuf ); mBuf ++; } while ( -- mLen ); Spi374Stop( ); } //******************forCH374LIB_base.c****************************** #include // #include "CH374HFF.H" #include "all.h"

// //********************************************** void Spi374Start(unsigned char mAddr, unsigned char CMD_SPI_374READorWRITE) { selectCh375low();//选时,开始此次SPI操作 Delay(1); if(CMD_SPI_374READorWRITE==CMD_SPI_374READ)//读操作,读命令为0xC0H { TXBUF1=0xC0; //0xC0; while (!(UTCTL1 & TXEPT));//发送完毕 TXBUF1=mAddr; //指定地址 while (!(UTCTL1 & TXEPT));//发送完毕 } //***************************** if(CMD_SPI_374READorWRITE==CMD_SPI_374WRITE)//写操作,读命令为0x80H { TXBUF1=0x80; //0x80; while (!(UTCTL1 & TXEPT));//发送完毕 TXBUF1=mAddr; //指定地址 while (!(UTCTL1 & TXEPT));//发送完毕 } } //********************************************** void Spi374Stop(void) { selectCh375High();//不片选时,结束此次SPI操作. Delay(1); } //********************************************** unsigned char Spi374InByte(void) { return(RXBUF1); } //********************************************** void Spi374OutByte(unsigned char mData) { TXBUF1=mData; while (!(UTCTL1 & TXEPT));//发送完毕 }

UploadImages/200832811171325.rar

请大家指教一下。谢了!!!


只有登录才能回复,可以选择微信账号登录