STM32F103学习笔记——SPI读写Flash(四)

本文记录了一位初学者使用STM32进行W25Q64串行Flash的读写实验过程,包括初始化、擦除、写入和读取数据,并通过串口下载和调试助手验证了实验的成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  此系列文章是小白学习STM32的一些学习笔记。小白第一次写笔记文章,有不足或是错误之处,请多体谅和交流!

1.main函数编写

  编写主函数,对FLASH读写成功与否进行测试。

1 int main(void)
2 {
3 LED_GPIO_Config();
4 LED_BLUE;
5 
6 /* 配置串口 1 为:115200 8-N-1 */
7 USART_Config();
8 printf("\r\n 这是一个 8Mbyte 串行 flash(W25Q64)实验 \r\n");
9 
10 /* 8M 串行 flash W25Q64 初始化 */
11 SPI_FLASH_Init();
12 
13 /* 获取 Flash Device ID */
14 DeviceID = SPI_FLASH_ReadDeviceID();
15 Delay( 200 );
16 
17 /* 获取 SPI Flash ID */
18 FlashID = SPI_FLASH_ReadID();
19 printf("\r\n FlashID is 0x%X,\
20 Manufacturer Device ID is 0x%X\r\n", FlashID, DeviceID);
21 
22 /* 检验 SPI Flash ID */
23 if (FlashID == sFLASH_ID)
24 {
25 printf("\r\n 检测到串行 flash W25Q64 !\r\n");
26 
27 /* 擦除将要写入的 SPI FLASH 扇区,FLASH 写入前要先擦除 */
28 // 这里擦除 4K,即一个扇区,擦除的最小单位是扇区
29 SPI_FLASH_SectorErase(FLASH_SectorToErase);
30 
31 /* 将发送缓冲区的数据写到 flash 中 */
32 // 这里写一页,一页的大小为 256 个字节
33 SPI_FLASH_BufferWrite(Tx_Buffer, FLASH_WriteAddress, BufferSize);
34 printf("\r\n 写入的数据为:%s \r\t", Tx_Buffer);
35 
36 /* 将刚刚写入的数据读出来放到接收缓冲区中 */
37 SPI_FLASH_BufferRead(Rx_Buffer, FLASH_ReadAddress, BufferSize);
38 printf("\r\n 读出的数据为:%s \r\n", Rx_Buffer);
39 
40 /* 检查写入的数据与读出的数据是否相等 */
41 TransferStatus1 = Buffercmp(Tx_Buffer, Rx_Buffer, BufferSize);
42 
43 if ( PASSED == TransferStatus1 )
44 {
45 LED_GREEN;
46 printf("\r\n 8M 串行 flash(W25Q64)测试成功!\n\r");
47 }
48 else
49 {
50 LED_RED;
51 printf("\r\n 8M 串行 flash(W25Q64)测试失败!\n\r");
52 }
53 }// if (FlashID == sFLASH_ID)
54 else// if (FlashID == sFLASH_ID)
55 {
56 LED_RED;
57 printf("\r\n 获取不到 W25Q64 ID!\n\r");
58 }
59 
60 while (1);
61 }

2.下载验证

打开野火例程,编译执行,生产hex文件
在这里插入图片描述
然后利用ISP下载软件,将hex文件通过串口下载方式下载到板子上面。
在这里插入图片描述
接着代开串口调试助手软件,查看FLASH读写操作成功与否。

在这里插入图片描述
可见对FLASH读写实验成功了!
项目链接:https://download.youkuaiyun.com/download/weixin_45621528/15269070

本系列笔记内容、代码和图片均基于电子书《【野火®】零死角玩转STM32—F103-MINI》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值