打印
[活动专区]

【赛元易码魔盒】基于SC89F8616的W25Q16读写

[复制链接]
578|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
W25Q16是一款16Mbit(8MB)Flash型存储器件,可用于声音、文本和数据的存储,典型的应用是构建中文字库。
为了进行W25Q16的读写操作,W25Q16模块与SC95F8616开发板的连接关系为:
CS--P10
DI--P13
CLK--P12
D0--P11
串口通信模块与开发板的连接关系为:
TX--P21
RX--P20
软按键与开发板的连接关系为:
K3 -- P03
K4 -- P04
K1 -- P05
K2 -- P06
COM-- P07
OLED 屏与开发板的连接关系为:
SDA --P16
SCK --P17
整体的硬件构成如图1所示。
                              
1 硬件构成
实现W25Q16的读写功能,软件的设计采用易码魔盒来完成。
1.打通串口
1)使用易码魔盒创建一个新工程,芯片型号为SC89F8616
2)按图2所示进行管脚的配置,以了解串行通讯模块、W25Q16存储模块、软按键。
2 管脚的配置

3)按图3所示设置UART0
3 设置UART0
4点击“生成工程源代码”图标,在弹出的对话框中点击“保存”按钮,以自命名的文件夹加以保存。
5右击“函数”列表,从中点击“添加函数”选项,以添加延时函数delay
6)按图4所示完成程序流程
4 程序流程
7)添加变量Uart0ReceiveFlagUart0SendFlag
8)在工具栏中,右击“变量”列表,从中点击“添加变量”选项,分别增添变量。
按图5所示更改相关配置
5 更改配置
9)生成代码后,UART0的中断服务程序为:
替代printf语句,在调试过程中printf语句是利用率很高的语句,但它要对putchar函数进行
重定义。然而在易码魔盒中却限制对它的修改(在keil中是可以使用的,并配置stdio.h头文件。),故只能对printf语句说拜拜了。
10)重新按图6所示更改程序流程
6 修改程序流程
11)添加数组变量cmd3[]
12)如图7所示更改相应的配置
7 更改配置
13)重新生成程序代码,并进行编译和下载,则运行效果如图8所示。这样我们在调试时,就可以凭此来输出提示信息了。
8 输出效果
2. 实现W25Q16读写
1)由于W25Q16要用USCI1来控制,故需按图9来设置USCI1
  
9 设置USCI1
2)重新生成程序代码后,USCI1的初始化函数如下:
3)添加新变量,并由P10作为片选信号端CS
4)添加W25Q16读写的相关函数
5)添加图10所示USCI1中断服务流程
10 USCI1中断服务流程
6)按图11所示修改USCI1的配置
11 修改USCI1配置
7)重新生成代码后,USCI1中断服务程序如下:
8)按图12所示修改程序流程,以按键来控制W25Q16的功能选择
12 程序流程
9)添加收发数组变量
10)按图13所示修改相应配置
  
  
13 修改配置
11)重新生成程序代码后,主程序如下:


12)经编译,其结果如图14所示。
14 编译结果
13)下载后,按下K1键则结果如图15所示。
15 运行结果
经对比所读取的数据“FC04 FC 00 FE 42 BE 00 F2 12”与当初以文件方式所写入的内容完全一致,说明读取正确。凭此,后面我们就可以用W25Q16来构建中文字库或图片库啦!
16 原写入数据

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

446

主题

2675

帖子

37

粉丝