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.

[参考译文] MSP430FR5994:具有 MSP430fr5994的 SD 卡

Guru**** 2379540 points
Other Parts Discussed in Thread: MSP430FR5994
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1182423/msp430fr5994-sdcard-with-msp430fr5994

器件型号:MSP430FR5994

大家好、

我尝试将 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();
        }