更换系统n次之后的记录

简记

从高中开始就接触了各种Linux的发行版,那时候还只能到同学家或者网吧里下载镜像。上了大学之后由于接入网络更加方便,重装系统开始乐此不疲,在反反复复更换了无数次Linux发行版和Windows7、Windows10之后,今天终于感到浪费的时间实在是不值得。操作系统本身就是方便人们的工具,在什么平台上都有大神和技术渣,所以今天停留在Windows10 LTSC 2019,以后不再像智障一样经常更换。

记得最早接触的是Centos系统,当时第7个版本已经出来了,完整版的镜像多达七八G,那时候自己的U盘还不够,网吧电脑的下载速度也不到1M。之后陆续更换了Ubuntu和OpenSUSE。上了大学以来Kali和Arch换了若干次,Debian和BlackArch也用过几次,最近的一次是Debian内装WinXP的虚拟机,没坚持多长时间就换回了现在的Win10。想想自己真的是能折腾,有哪个系统是完美的呢?不必浪费时间在这上面。本科期间自己没做过几个有意思的项目,除了学分绩搞的高一点,换了无数次的操作系统,重装了几百次的IDE和配环境顺便做Hello World,实在是没什么说得出来的成就,如今毕业在即,希望自己能顺利考上研,深入研究有用的技术,充分利用时间提高自己。

在此也告诫很多痴迷于配环境和装工具的后来人,不要再折腾自己了!真真正正的写一点项目,好好学习算法和各种新技术并深入钻研进去才是有用的。否则你就会是最没有用的“伪技术人员”。

在使用STM32文件系统(如FATFS)进行SD卡存储时,当SD卡存满后,可以通过以下步骤从头开始记录: 1. **检测SD卡容量**:首先,需要检测SD卡的容量,判断是否已经存满。可以通过文件系统提供的API获取SD卡的剩余空间。 2. **判断存储状态**:在每写入数据前,检查SD卡的剩余空间。如果剩余空间不足,可以选择覆盖旧数据或提示用户更换SD卡。 3. **覆盖旧数据**:如果选择覆盖旧数据,可以将文件指针移动到文件开头,重新写入数据。可以通过f_lseek函数将文件指针移动到文件的开头。 4. **删除旧文件并创建新文件**:如果希望每从头开始记录,可以选择删除旧文件并创建一个新文件。这样可以确保新数据从文件开头开始写入。 以下是一个简单的示例代码,展示了如何在SD卡存满后从头开始记录: ```c #include "ff.h" #include "diskio.h" FATFS fs; FIL file; FRESULT res; DWORD fre_clust, fre_sect, tot_sect; void SD_WriteData(uint8_t *data, UINT length) { // 挂载文件系统 res = f_mount(&fs, "", 1); if (res != FR_OK) { // 处理错误 return; } // 获取SD卡容量和剩余空间 res = f_getfree("", &fre_clust, &fs); if (res != FR_OK) { // 处理错误 return; } tot_sect = (fs->n_fatent - 2) * fs->csize; fre_sect = fre_clust * fs->csize; // 判断剩余空间是否足够 if (fre_sect < (length / 512)) { // 剩余空间不足,覆盖旧数据 res = f_open(&file, "data.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE); if (res == FR_OK) { // 移动文件指针到开头 res = f_lseek(&file, 0); if (res == FR_OK) { // 写入数据 res = f_write(&file, data, length, &length); } f_close(&file); } } else { // 剩余空间足够,直接写入数据 res = f_open(&file, "data.txt", FA_OPEN_ALWAYS | FA_READ | FA_WRITE); if (res == FR_OK) { res = f_write(&file, data, length, &length); f_close(&file); } } } ``` 在这个示例中,`SD_WriteData`函数首先挂载文件系统,然后获取SD卡的剩余空间。如果剩余空间不足,则覆盖旧数据;否则,直接写入数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值