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.

[参考译文] CCS/MSP430FR5994:SD 卡日志程序

Guru**** 2563960 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/914314/ccs-msp430fr5994-sd-card-log-programm

器件型号:MSP430FR5994

工具/软件:Code Composer Studio

你好

我编写了一个代码、该代码应该在 SD 卡上创建文件、但实际代码不起作用。 我是}remplace
我使用的是 SDHC 16GB

编译时没有错误。  是否有任何选项可以覆盖此内容,比如我可以控制 SD 卡的节点应用程序?

hier 是代码:

#define MAX_BUF_SIZE 32
#define FRESULT

#define FA_READ 0x01
#define FA_open_Existing 0x00
#define FA_ERROR 0x80
#define CLOCK FREQ 8000000
#define 所需的 SPI_FREQ 400000
#if!_FS_readonly
#define FA_WRITE 0x02
#define FA_CREASE_NEW 0x04
#define FA_CREASE_AST_ALOW_0x08
#define FA_open_always 0x10
#define FA__written 0x20
#define FA__MAD_0x40
#endif
#define MAX_FILE_LEN 12.
#define FRESULT

#ifdef __cplusplus
extern "C"{
#endif

字符文件名[12][MAX_FILE_LEN];
typedef unsigned char 字节;
typedef unsigned int UINT;

//extern int mode=7;
//extern int noSDCard=0;
//void sdcardLog (void);
//void sendDataSDCard (void);

SDCardLib sdCardLib;
uint8_t fileNum = 0;

#if defined (__IAR_systems_ICC__)
#pragma LOCATION = 0x9000
_no_init uint16_t dataArray[12289];
#endif
#define MAX_BUF_SIZE 32
char buffer[212];
char bufsize[32];
FRESULT 分辨率;/*结果代码*/
fil fil;/*文件对象*/
uint8_t test[7]="1234Go";
uint16_t br;
uint16_t toReadSize = bufsize;
const char filName[]="demo.txt";
// FatFs 静态变量
extern void SDCard_setCSLow (void);
extern SDCardLib_Status SDCard_detectCard (void);
extern void SDCard_init (void);
extern SDCardLib_Interface sdIntf_MSP430FR5994LP;


int main (空)


PM5CTL0 &=~LOCKLPM5;//禁用 GPIO 上电默认高阻抗模式

sdcard_init();
sdcard_setCSHigh();
// WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器

SDCardLib_Status SDCard_detectCard();

用于 SD 检测引脚的//上拉电阻器
//如果插入 SD 则拉低
GPIO_setAsInputPinWithPullUpResistor (GPIO_PORT_P7、GPIO_PIN2);


if (GPIO_getInputPinValue (GPIO_PORT_P7、GPIO_PIN2)=0){

P1DIR |= 0x01;//将 P1.0设置为输出方向

for (;;){
volatile unsigned int i;// volatile 以阻止优化

P1OUT ^= 0x01;//使用异或切换 P1.0

I = 1000;// SW 延迟
我----
while (i!= 0);

printf ("无 SD 卡...");
返回 SDCARDLIB_STATUS_NOT 存在;


否则{

返回 SDCARDLIB_STATUS_Present;

if (SDCARDLIB_STATUS_Present = true){
GPIO_setAsInputPinWithPullUpLowResistor (GPIO_PORT_P7、GPIO_PIN2);

//打开文件
RES = f_open (&fil、fileName、fa_write | fa_create_always);
如果(res!= FR_OK)

转到 write_exit;

UINT FilWritten;
//写入到文件
RES = f_write (&fil、test、sizeof (test)、&FilWritten);
如果(res!=FR_NO_FILE)

f_puts (&fil、"GO");
f_putc (&fil、"2390123");

转到 write_exit;

Write_exit:
//关闭文件
f_close (&fil);
返回 res;