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

发布者:RadiantDreams最新更新时间:2024-02-27 来源: elecfans关键字:NAND  STM32 手机看文章 扫描二维码
随时随地手机看文章

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;

}

}

}


关键字:NAND  STM32 引用地址:SD NAND在STM32应用上的保姆级教程

上一篇:stm32定时器优先级
下一篇:STM32速成笔记(5)—串口通信

推荐阅读最新更新时间:2024-11-06 09:37

stm32小容量、中容量和大容量产 在选择启动文件时该怎么选
如下图所示,根据flash 的大小将芯片分为大容量 中容量 小容量 可以想象 ,对应的启动文件肯定也分为大容量 中容量 小容量 来看看3.5 的标准库自带的启动文件 根据字面意思, hd(High Density )是大容量, md(Medium Density ) 是中容量 ld (Low Density ) 是小容量 可是启动不止三个,大中小之外还有后面跟vl后缀的 并且还有后缀cl 和 xl 的文件。 解释一下 CL:connective line 指的是互联型产品 stm32f105xx和stm32f107xx 系列 Xl :extreme line 超高密度型 产品 这种应该
[单片机]
<font color='red'>stm32</font>小容量、中容量和大容量产 在选择启动文件时该怎么选
stm32的软件架构问题
1、 架构组成:程序代码分为四种结构 a) 顺序执行代码 定义:按照顺序逐行执行的代码 优点:是思路简单,代码可靠不易被干扰。 缺点:占用资源 用途:只用来各种变量、函数的定义,硬件的初始化程序 位置:main.c的开始一直到main函数的while函数之前 b) 空闲执行代码 定义:在CPU空闲的时候才执行的代码 优点:不占用资源 缺点:执行的实时性不能保证 用途:非实时任务,调试信息输出,不重要的状态指示 位置:main.c的main函数的while函数内部 c) 中断执行代码 定义:由软硬件事件打断整个程序而执行的代码 优点:可以保证实时性,各种中断可以安排优先顺序 缺点:关系相对复杂,互相之
[单片机]
STM32的AD用DMA方式时的请注意初始化顺序
今天无意之间看到了这篇帖子,是斑竹好久前发的~~~ 我突然意识到我的数据好像一直没有错位,看到这个我又试验了一下,发现把DMA_Cmd(DMA1_Channel1, ENABLE);放置到哪儿都是一样的啊~~~ 这个是原帖部分: STM32的AD用DMA方式时的请注意初始化顺序 珍情岁月(84848098) 17:19:23 DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_Address; DMA_InitStructure.DMA_MemoryBaseAddr = (u32)&ADC_Result; D
[单片机]
华为在 CEATEC 展出 3G SD
    上图就是华为在今年 CEATEC 展上推出的 3G SD 卡,可以透过 SDIO 标准,为各种装置提供最高 HSPA+ 传输速率的上网能力。过去行动上网装置大多是走 USB 的方式,但随着现代轻薄笔电 USB 埠给得愈来愈小气,或许把比较少用到的 SD 卡卡片阅读机转为 3G 网卡的功能,也是个不错的选择呢!可惜这要 SD 卡片阅读机本身支持 SDIO 才行,最近好像比较少看到了。 卡片使用的是 Nano SIM,但没有内建的储存空间,所以它不是设计来像 Eye-Fi 那样供相机使用(虽然这样好像也不错...)。目前华为还在寻找合作厂商/电信商的阶段,应该还要再一段时间,才会看到它上市吧。
[手机便携]
STM32串口中断接收一个完整的数据帧
代码运行条件: (1) 大端发送; (2) 上位机发送一帧数据的时间间隔不能大于主循环周期; (3)数据帧满足下面格式: 帧头部(Head) 类型(Type) 长度(Length) 值(Value) CRC校验 2字节 1字节 1字节 X字节 2字节 0xaa 0x55 X void USART6_Init (void) { GPIO_InitTypeDef GPIO_InitStructur
[单片机]
STM32菜鸟成长记录---GPIO的使用
span style= font-size:14px; /span span style= font-size:14px; #include stm32f10x_lib.h #include stm32f10x.h GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO宏操作结构体 void Delay(__IO uint32_t nCount)//__IO的宏定义volatile { for(; nCount != 0; nCount--); } /*初始化嵌入式Flash接口,初始化PLL使其达到系统可用频率*/ vo
[单片机]
<font color='red'>STM32</font>菜鸟成长记录---GPIO的使用
stm32使用三片74HC595级联程序代码
/************************************************************************ Function: Read_74HC595 Description: 读取n片74HC595的输入数据 Calls: HC595_delay;GPIO_ResetBits;GPIO_SetBits; Data Accessed: 无 Data Updated: 无 Input: HC595x:用户使用的595端口,类型定义在74HC595.h中 ChipNum: 用户使用的595端口上连接的芯片个数 Outp
[单片机]
STM32管脚重定义
最近在学习STM32,在BZ上一篇关于的串口通信文章里有这么一段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO,ENABLE); 当初是参考开发的里子写的一直对GPIOD或上“RCC_APB2Periph_AFIO”这句话的意思没搞懂,通过这几天在网上查找资料和看手册,终于高清楚了,不敢独享,希望能对跟我一样的新手有所帮助吧o(∩_∩)o... STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等 ,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved