关于ch375库的应用

我在用ch375lib里的avr例子时候编译filelibb加入库CH375HFB.A时不能编译,把库换成libCH375HFD.A的时候就能编译,请问是为什么,这两个库能通用吗?

我是这样将库加进去的 # Define all object files. OBJ = $(SRC:.c=.o) $(ASRC:.S=.o) CH375HFB.A

# Define all listing files. LST = $(SRC:.c=.lst) $(ASRC:.S=.lst)

# Compiler flags to generate dependency files. GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d

我用的是ATmega32l单片机。


用libCH375HFD.A库


我用filelibd里的exam6就可以初始化库,但是用filelibb里的exam1的时候就不能初始化库,用的是libCH375HFD.A库,请问为什么?


主要看你用什么编译器,FILELIBB编译器用的是ICCAVR,FILELIBD编译器用的是AVR_GCC.两个库是不能通用的.


我现在可以初始化了,但是出现了下面的问题,这样好像写不进去,我用的扇区方式,我开始定义h=0,Read_Byte_SPI();是读取ad转换的值,每次读取八位。如果每读一次就写一次的话就能够将数据写进去,但是当我写512个字节的时候就写不进去。我的单片机的ram是2k。请指点。

SIGNAL(SIG_INTERRUPT2) { UINT8 i; WriteToReg_ADC(0X38); CS_0; FILE_DATA_BUF[h]=Read_Byte_SPI(); FILE_DATA_BUF[h+1]=Read_Byte_SPI(); CS_1; h+=2; if(h==512) { h=0; mCmdParam.Write.mSectorCount=1; i = CH375FileWrite( ); /* 向文件写入数据 */ mStopIfError( i ); mCmdParam.Write.mSectorCount=0; i = CH375FileWrite( ); /* 向文件写入数据 */ mStopIfError( i ); } }


问题解决了,我定义的h的格式不正确,应该定义为int型,而我定义成了char型的了。


还有一点,0--511已经是512个字节了,等到512再写的话应该会错位吧。


不错位啊,h每次加2,加到510的时候正好为511,然后h再加2就为512,此时让h等于0,但并没有给FILE_DATA_BUF赋值。当h=512时的字节数也为512个,为0——511。


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