再请教版主一个建文件的问题?有图片,谢谢!

例程都是:

s = CH376FileCreate( "/MY_ADC.TXT" );

这个是没有问题的。

我现在想创建一个文本“四五.txt”

我查了四五.txt的内码,采用程序实现:

volatile uchar jianli[8];

jianli[0]=0xcb;jianli[1]=0xc4;“四” jianli[2]=0xce;jianli[3]=0xe5;“五” jianli[4]=0x2e;“.” jianli[5]=0x74;"t" jianli[6]=0x78;"x" jianli[7]=0x74;"t" s = CH376FileCreate( jianli ); mStopIfError( s ); 程序一直不能退出,在计算机上看,文件建了,

但是一打开出错,我要怎么才能实现呢?

20106171437932.jpg

非常感谢!

文件名中的英文字母必须是大写的,包括后缀名,另外文件名必须以0结尾jianli[8]=0。英文小写字母属于长文件名范畴,请参考EXAM11.


_study_ :

按照你说的,我改了,建了文件,打开里边有一个0,程序一直没有执行到底。

改了的程序:

volatile uchar jianli[9];

jianli[0]=0xcb;jianli[1]=0xc4;“四” jianli[2]=0xce;jianli[3]=0xe5;“五” jianli[4]=0x2e;“.” jianli[5]=0x54;"T" jianli[6]=0x58;"X" jianli[7]=0x54;"T" jianli[8]=0x00;"0"

s = CH376FileCreate( jianli );

mStopIfError( s );


1、默认新建的是一个1字节的文件,内容是随机的 2、程序一直没有执行到底是什么意思?程序停在哪了?


但是: s = CH376FileCreate( "/MY_ADC.TXT" );

这个文件名怎么执行的?

“程序一直没有执行到底是什么意思?程序停在哪了?”是这个意思,那个U盘数据传输的指示灯一直在闪

我的相应指示也没有输出。也就是没有结束。

但是按照2楼这个文件是建立了。


怎么我刚才做实验按照2楼又可以了,不太稳定。


相反搞忘了把

volatile uchar jianli[9];

设置成 volatile uchar jianli[1];

成功写入数据!!

不巧成了,但是这个是有很大风险的????????


不明白什么意思???


这个程序是建立文件: volatile uchar jianli[9];

jianli[0]=0xcb;jianli[1]=0xc4;“四” jianli[2]=0xce;jianli[3]=0xe5;“五” jianli[4]=0x2e;“.” jianli[5]=0x54;"T" jianli[6]=0x58;"X" jianli[7]=0x54;"T" jianli[8]=0x00;"0"

s = CH376FileCreate( jianli );

mStopIfError( s );

后面希望写入数据,但是怎么都把数据写不进去。

但是把

volatile uchar jianli[9];

改成

volatile uchar jianli[1];或volatile uchar jianli[2];

不仅仅可以成功建立文件,这个文件是我需要的文件,而且还可以成功写入数据。

这里我只定义了文件名为一个字节或两个字节,但实际上我用了是9个字节,这个肯定矛盾的,

但实际上达到了目的,但在项目中我肯定不敢用,但问题出在哪里呢?


用大写的字母或者阿拉伯数字实验一下。 为什么: volatile uchar jianli[9]; 直接 uchar jianli[9];不就可以了吗?


首先按照楼上所说检查下RAM,其次就是如果你的缓冲区修改程序1或者2的话,那么可以肯定的是这个会出现RAM溢出的情况,到时候会出现单片机跑飞的现象。


回9楼,我是采用的GCC编译器,将那个变量定义成全局了,这个不影响的。


回10楼,是呀,我这样用即使实现了,也不敢在工程上实现。


望版主也来看看!


谢谢各位!问题已经解决。


楼主不妨把调试经验写一下,供大家学习经验。


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