标题: 关于stm32文件系统在SD卡中连续创建txt文件的问题 [打印本页]

作者: yqyq    时间: 2021-9-3 23:40
标题: 关于stm32文件系统在SD卡中连续创建txt文件的问题
从串口接收数据保存在SD卡中,以函数
f_open(&fnew,"0:DATA1.txt",FA_CREATE_ALWAYS|FA_WRITE)创建了txt文件,将串口数据保存在txt文件中,当txt文件大于5MB时,创建DATA2.txt,然后将数据保存在DATA2.txt中,循环如此,不太明白创建文件名这快"0:DATA1.txt"不是一个字符串吗,怎么循环创建文件名,想到了sprintf函数,没有思路该怎么操作才能完成呢


作者: 188610329    时间: 2021-9-4 16:00
你只是要思路的话,DATA纯字符串你不用管。
你有个变量比如:File_Num   你用什么逻辑,什么时机去累加,自己考虑。
要命名文件名的时候,给完字符串"DATA"之后,
File_Num / 10 ,  等于0的话跳过,大于0的话, 把(File_Num / 10)+‘0’
然后,(File_Num % 10)+‘0’
最后把字符串 “.TXT" 给补上就好了。
这是两位数记法,三位数,四位数方法同上类推。
作者: yqyq    时间: 2021-9-5 21:56
188610329 发表于 2021-9-4 16:00
你只是要思路的话,DATA纯字符串你不用管。
你有个变量比如:File_Num   你用什么逻辑,什么时机去累加, ...

谢谢你的答复,你这个思路我没太懂,代码不会写,我现在是将数字循环加然后转为字符串,然后将字符串合并起来来实现完整字符串,现在有个问题是我在C编译器可以成功,在keil里却有问题,不知道咋回事,困扰
作者: 188610329    时间: 2021-9-5 22:18
yqyq 发表于 2021-9-5 21:56
谢谢你的答复,你这个思路我没太懂,代码不会写,我现在是将数字循环加然后转为字符串,然后将字符串合并 ...

你用的C编译器可能不是针对单片机的C.
keil 里 你编译不了,很大的可能,是你没有include 足够支撑你运算的库(头文件) 比如 MATH.H 之类的。你双击keil 里报错的地方,看看他跳转到哪条代码,然后看看是不是某个运算需要指定的头文件。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1