SD NAND与正点原子精英板的连接
由于正点原子精英板没有SD NAND接口,只有TF卡接口,所以SD NAND需要用到转接板来连接。
SD NAND正常运行现象
本次实验的程序是正点原子的SD卡实验例程,先用读卡器把SD NAND接到电脑上,并复制一个文件进去,再插到开发板上;
用送的数据线连接USB UART接口,下载好程序,打开电脑上的串口助手,按下KEY0,即可读取到数据,
具体实验步骤和现象可以看例程文件夹中的readme,
另外LED-DS0闪烁也表示SD NAND芯片在正常运行,
SD NAND芯片用的是MK-米客方德的工业级芯片MKDV1GIL-AS;MK-米客方德家还有其他各种型号的SD NAND和各种各样的转接板,
对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;
}
}
}