请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:EK-TM4C1294XL 大家好、
我正在使用 EK-TM4C1294XL launchpad。 我正在将 SD 卡 与 MCU 连接、并且能够创建新文件并在其中写入数据。 IAM 使用 SSI3连接到 SD 卡模块
但是,一些垃圾数据也是用正确的数据写入的。 在我的最终应用中、我将存储 ADC 数据、但出于测试目的、我只需使用简单的循环来存储高达150的整数
此外,当我将数据存储在 while (1)循环中时,数据的存储 方式会有所不同 ,而当我在没有 while (1)循环的情况下存储数据时,数据的存储方式会有所不同。 随附的是测试文件、两者都带有&不带 while (1)循环。
请帮我解决。
下面是我的主要功能
int main (void){ FRESULT iFResult; uint32_t a=0、b=0、c=0; FPULazyStackingEnable (); g_ui32SysClock= iodClockFreqSet ((SYSCTL_XtAL_25MHz | SYSCTL_OSC_main | SYSCL_USC000| SYSC_SysClock_UST_USC000| SYSC_USC2000_UST_SysClock) ; SysTickEnable(); SysTickIntEnable(); IntMasterEnable(); while (1) { iFResult = f_mount (0、&g_sFatFS); if (iFResult!= FR_OK){ //UARTprintf ("f_mount 错误:%s\n"、StringFromFResult (iFResult)); 返回(1); } 否则{ //UARTprintf ("SD 卡已安装。\n"); } iFResult = f_open (&fil、"test33.csv"、fa_write|fa_open_always); if (iFResult!= FR_OK){ //UARTprintf ("fresult:%s\n"、StringFromFResult (iFResult)); } 否则{ //UARTprintf ("\n 已打开 SD 卡\n"); } char fileHeaders[]="sensor1、sensor2、sensor3、sensor4\r\n"; iFResult = f_write (&fil、fileHeaders、sizeof (fileHeaders)、&countHeader); char valueStr[150]; for (a=0;a<=149;a++) { //b=a; //c=a; usprintf (valueStr、"%d、%d、%d、%d\n"、a、a、a、a、a); // a= valueStr[a]; SysCtlDelay (300000); iFResult = f_write (&fil、valueStr、sizeof (valueStr)、(UINT *)&countRow); SysCtlDelay (300000); } iFResult = f_close (&fil); f_mount (0、NULL); }