⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 这是一个MSP430单片机的MMC卡的读写程序。略作修改就可以用到别的型号MCU上。
💻 C
字号:

#include <msp430x16x.h>
#include <stdio.h>

#include "mmc.h"

unsigned long cardSize = 0;
unsigned char status = 1;
unsigned int timeout = 0;
int i = 0;

unsigned char buffer[512];

void Init_CLK(void);

int main( void )
{
    //停止看门狗
    WDTCTL = WDTPW + WDTHOLD;
  
    //初始化时钟
    Init_CLK();
    //初始化MMC卡
    while (status != 0) 
    {
        status = initMMC();
        timeout++;
        if (timeout == 50) 
        {
            break;
        }
    }
    //判断卡是否插入
    while ((mmc_check() != MMC_SUCCESS)); 
  
    for (i = 0; i <= 512; i++) buffer[i] = i;
    //写入一块数据
    mmcWriteBlock(1,512,buffer);
    
    for (i = 0; i <= 512; i++) buffer[i] = i + 64;
    //写入一块数据
    mmcWriteBlock(512,512,buffer);
  
    //读出一块数据
    mmcReadBlock(1,512,buffer);
    //读出一块数据
    mmcReadBlock(512,512,buffer);
}
void Init_CLK(void)
{
    unsigned int i;
    //将寄存器的内容清零
    //XT2震荡器开启
    //LFTX1工作在低频模式
    //ACLK的分频因子为1
    BCSCTL1 = 0X00;			
					
					
    do 
    {
        // 清除OSCFault标志
	IFG1 &= ~OFIFG;                       
	for (i = 0x20; i > 0; i--);                
    }
    while ((IFG1 & OFIFG) == OFIFG);      // 如果OSCFault =1   
				
    //open XT2, LFTX2 选择低频率
    BCSCTL1 &= ~(XT2OFF + XTS);
    //DCO Rsel=7(Freq=3200k/25摄氏度)  
    BCSCTL1 |= RSEL0 + RSEL1 + RSEL2; 
    BCSCTL1 |= 0x07;
    //MCLK的时钟源为TX2CLK,分频因子为1
    BCSCTL2 += SELM1;		
    //SMCLK的时钟源为TX2CLK,分频因子为1
    BCSCTL2 += SELS;		    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -