SD NAND在STM32应用上的保姆级教程

发布时间: 2024-02-27
来源: 电子工程世界

SD NAND与正点原子精英板的连接

由于正点原子精英板没有SD NAND接口,只有TF卡接口,所以SD NAND需要用到转接板来连接。

IMG_256wKgaomU7h8OAKr4GAARjAXS-SK4634.png

SD NAND正常运行现象

本次实验的程序是正点原子的SD卡实验例程,先用读卡器把SD NAND接到电脑上,并复制一个文件进去,再插到开发板上;

用送的数据线连接USB UART接口,下载好程序,打开电脑上的串口助手,按下KEY0,即可读取到数据,

IMG_256

具体实验步骤和现象可以看例程文件夹中的readme,


另外LED-DS0闪烁也表示SD NAND芯片在正常运行,

IMG_256

SD NAND芯片用的是MK-米客方德的工业级芯片MKDV1GIL-AS;MK-米客方德家还有其他各种型号的SD NAND和各种各样的转接板,

IMG_256IMG_256

对SD NAND有需求的可以MK-米客方德公司,想要例程的也可以联系我们。


代码解析

这里贴一段代码,方便大家理解


int main(void)

{

uint8_t key;

uint8_t t = 0;


sys_stm32_clock_init(9); /*设置时钟, 72Mhz */

delay_init(72); /*延时初始化 */

usart_init(72, 115200); /*串口初始化为115200 */

usmart_dev.init(72); /*初始化USMART */

led_init(); /*初始化LED */

lcd_init(); /*初始化LCD */

key_init(); /*初始化按键 */

my_mem_init(SRAMIN); /*初始化内部SRAM内存池 */


lcd_show_string(30, 50, 200, 16, 16, "STM32", RED);

lcd_show_string(30, 70, 200, 16, 16, "SD TEST", RED);

lcd_show_string(30, 90, 200, 16, 16, "ATOM@ALIENTEK", RED);

lcd_show_string(30, 110, 200, 16, 16, "KEY0:Read Sector 0", RED);


while (sd_init()) /*检测不到SD卡 */

{

lcd_show_string(30, 130, 200, 16, 16, "SD Card Error!", RED);

delay_ms(500);

lcd_show_string(30, 130, 200, 16, 16, "Please Check! ", RED);

delay_ms(500);

LED0_TOGGLE(); /*红灯闪烁 */

}


/*打印SD卡相关信息 */

show_sdcard_info();


/*检测SD卡成功 */

lcd_show_string(30, 130, 200, 16, 16, "SD Card OK ", BLUE);

lcd_show_string(30, 150, 200, 16, 16, "SD Card Size: MB", BLUE);

lcd_show_num(30 + 13 * 8, 150, g_sd_card_info.CardCapacity >> 20, 5, 16, BLUE); /*显示SD卡容量 */


while (1)

{

key = key_scan(0);


if (key == KEY0_PRES) /* KEY0按下了 */

{

sd_test_read(0,1); /*从0扇区读取1*512字节的内容 */

}


t++;

delay_ms(10);


if (t == 20)

{

LED0_TOGGLE(); /*红灯闪烁 */

t = 0;

}

}

}


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。