大家好、
我尝试将 micro SDCard 与 MSP430FR5994连接。 我使用的是 msp430fr5994开箱即用演示示例。 我想从 SDCARD 中写入和读取传感器数据。 但在此之前、我想将一些正值和负值写入 SDCARD 并读取它们。 我已经运行程序至 FRAM 日志、并在文档中读出 SDCARD 日志模式也与 FRAM 日志模式相同。 但我无法知道如何写入这些值、即我可以在哪个函数中传递这些值? 有人能帮我吗?
提前感谢。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
我尝试将 micro SDCard 与 MSP430FR5994连接。 我使用的是 msp430fr5994开箱即用演示示例。 我想从 SDCARD 中写入和读取传感器数据。 但在此之前、我想将一些正值和负值写入 SDCARD 并读取它们。 我已经运行程序至 FRAM 日志、并在文档中读出 SDCARD 日志模式也与 FRAM 日志模式相同。 但我无法知道如何写入这些值、即我可以在哪个函数中传递这些值? 有人能帮我吗?
提前感谢。
你(们)好。
LaunchPad 用户指南的第3.1节 将帮助您 了解开箱即用演示。
至于数据写入和读取、我建议您将重点放在文件"HAL_SDCard.c"上、它介绍 了通过 SPI 发送/读取一帧字节的 API 函数。
此致
SAL
您好 Sal、
我可以写入和读取温度和电压值。 但是、如果我尝试在函数调用中写入数据、代码将无法正常工作。 当我调试代码时,它在中断 _bis_SR_register (LPM3_bits | GIE)处停止;。 未触发中断。 我将在这里分享这段代码、请帮我。 SDCard_sendFrame (99,2)、 SDCard_readFrame (2);函数看起来相似,所以我已经从 readFrame 函数中删除了第一个参数。 我不确定是否正确。 请帮帮我。
case SDCARD_LOG_MODE: // printf("SDCARD_LOG_MODE\r\n"); storeTimeStampSDCard(); for (i=0;i<3;i++) { GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0); __delay_cycles(300000); GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0); __delay_cycles(2000000); } while (mode == SDCARD_LOG_MODE) { Init_RTC(); sdcardLog(); } break; case TRANSMIT_SDCARD_DATA_MODE: SDCard_init(); SDCard_fastMode(); sendCalibrationConstants(); sendTimeStampSDCard(); sendDataSDCard(); SDCard_sendFrame(99,2); //__delay_cycles(8000000); //SDCard_readFrame(2); break; default: break; } if (noSDCard) { __delay_cycles(900000); GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P2, GPIO_PIN0, GPIO_SECONDARY_MODULE_FUNCTION); // Send Temp Sensor Calibration Data EUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'N'); EUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'O'); EUSCI_A_UART_transmitData(EUSCI_A0_BASE, ' '); EUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'S'); EUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'D'); EUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'C'); EUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'A'); EUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'R'); EUSCI_A_UART_transmitData(EUSCI_A0_BASE, 'D'); while(EUSCI_A_UART_queryStatusFlags(EUSCI_A0_BASE, EUSCI_A_UART_BUSY)); GPIO_setOutputLowOnPin(GPIO_PORT_P2, GPIO_PIN0); GPIO_setAsOutputPin(GPIO_PORT_P2, GPIO_PIN0); noSDCard = 0; } __bis_SR_register(LPM3_bits | GIE); // Enter LPM3 and wait for PC commands __no_operation(); }