野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 179|回复: 2

指南者spi擦除flash显示全部为0x00

[复制链接]
发表于 2026-1-16 19:55:33 | 显示全部楼层 |阅读模式
本帖最后由 微信用户-CP1Las 于 2026-1-23 17:17 编辑

各位老师好,麻烦帮忙审核一下我的代码,谢谢!

09 flash.zip (8.62 MB, 下载次数: 0)

1. 代码目的:擦除Flash 地址为0的扇区的数据,然后读取出来确认是否已经完全擦除。
2. 遇到的问题:
  • 读取到的数不是0xFF,而是0x00
  • 单步调试或者在等待函数后面加延时的时候数组的前面几项可以显示0xff,但是绝大部分还是0x00
/*************************************main函数**********************************************/
  1. #include "stm32f10x.h"
  2. #include "bsp_spi_flash.h"
  3. #include "bsp_usart.h"
  4. #include "delay.h"  

  5. uint8_t buff[4096];

  6. int main (void)
  7. {
  8.   uint32_t id;
  9.   uint16_t i;

  10.   SPI_Flash_Init();
  11.   USART_Config();
  12.   id=SPI_Read_ID();

  13.   printf("ID=%d \n",id);

  14.   SPI_ERASE_SECTRO(0);
  15.   SPI_WaitForWriteEnd();
  16.   delay_ms(500);

  17.   SPI_Read_Data(0,buff,4096);
  18.   for(i=0;i<4096;i++)
  19.   {
  20.     printf("0x%x",buff[i]);
  21.     if (i%10==0)
  22.     {
  23.       printf("\r\n");
  24.     }
  25.   }
  26.   while (1)
  27.   {

  28.   }
  29. }
复制代码
/************************************bsp_spi_flash.c**********************************************/
  1. #include "bsp_spi_flash.h"

  2. //注意这个变量只在本文件中存在,但是生命周期是整个程序执行时间
  3. static __IO uint32_t SPITimeout=SPI_FLAG_TIMEOUT;

  4. void SPI_Flash_Init(void)
  5. {
  6.     GPIO_InitTypeDef GPIO_InitStructure;
  7.     SPI_InitTypeDef  SPI_InitStructure;

  8.     FLASH_SPI_APBxClock_FUN(FLASH_SPI_CLK, ENABLE);
  9.     FLASH_SPI_CS_APBxClock_FUN(FLASH_SPI_CS_CLK, ENABLE);
  10.     FLASH_SPI_SCK_APBxClock_FUN(FLASH_SPI_SCK_CLK, ENABLE);
  11.     FLASH_SPI_MOSI_APBxClock_FUN(FLASH_SPI_MOSI_CLK, ENABLE);
  12.     FLASH_SPI_MISO_APBxClock_FUN(FLASH_SPI_MISO_CLK, ENABLE);

  13.     // cs,普通io模式
  14.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  15.     GPIO_InitStructure.GPIO_Pin = FLASH_SPI_CS_PIN;
  16.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  17.     GPIO_Init(FLASH_SPI_CS_PORT, &GPIO_InitStructure);

  18.     // scl
  19.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  20.     GPIO_InitStructure.GPIO_Pin = FLASH_SPI_SCK_PIN;
  21.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  22.     GPIO_Init(FLASH_SPI_SCK_PORT, &GPIO_InitStructure);

  23.     // mosi
  24.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  25.     GPIO_InitStructure.GPIO_Pin = FLASH_SPI_MOSI_PIN;
  26.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  27.     GPIO_Init(FLASH_SPI_MOSI_PORT, &GPIO_InitStructure);

  28.     // miso
  29.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  30.     GPIO_InitStructure.GPIO_Pin = FLASH_SPI_MISO_PIN;
  31.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  32.     GPIO_Init(FlASH_SPI_MISO_PORT, &GPIO_InitStructure);

  33.     /*停止信号,cs引脚为高电平*/
  34.     FLASH_SPI_CS_HIGH();

  35.     /*spi的模式配置,stm32支持spi模式1和模式3,分别配置CPOL CPHA*/
  36.     SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; // 波特率分频数
  37.     SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;                       // 初始化空闲状态下的电频为1
  38.     SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;                        // 初始化检测边缘时高电平
  39.     SPI_InitStructure.SPI_CRCPolynomial = 0;                           // 不使用crc校验值。大部分的spi设备都不支持crc,具体请查看数据手册
  40.     SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
  41.     SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; // 选择双线全双工
  42.     SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;                 // 配置为msb先行,就是高位先行
  43.     SPI_InitStructure.SPI_Mode = SPI_Mode_Master;                      // spi的主从模式选择
  44.     SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;                          // 软件控制spi

  45.     SPI_Init(FLASH_SPIx, &SPI_InitStructure);

  46.     SPI_Cmd(FLASH_SPIx, ENABLE);
  47. }

  48. static uint32_t SPI_TIMEOUT_UserCallback(uint8_t errorCode)
  49. {
  50.     FLASH_ERROR("SPI 等待超时! errorCode = %d",errorCode);
  51.     return 0;
  52. }

  53. //发送一个字节,注意spi的时序产生的条件。当没有发送数据给spi的时候,是不会产生时序的,等待则无效
  54. uint8_t SPI_Flash_SendByte(uint8_t date)
  55. {
  56.     SPITimeout=SPI_FLAG_TIMEOUT;
  57.     while (SPI_I2S_GetFlagStatus(FLASH_SPIx, SPI_I2S_FLAG_TXE) == RESET)
  58.     {
  59.         if (SPITimeout--==0)    return SPI_TIMEOUT_UserCallback(0);
  60.     };

  61.     //程序执行到这里时,tx缓冲区已空
  62.     SPI_I2S_SendData(FLASH_SPIx, date);

  63.     SPITimeout=SPI_FLAG_TIMEOUT;
  64.     while (SPI_I2S_GetFlagStatus(FLASH_SPIx, SPI_I2S_FLAG_RXNE) == RESET)
  65.     {
  66.         if (SPITimeout--==0)    return SPI_TIMEOUT_UserCallback(0);
  67.     };

  68.     //程序到此处,说明数据发送完毕,并接受下一字节
  69.     return SPI_I2S_ReceiveData(FLASH_SPIx);
  70. }

  71. uint8_t SPI_Flash_Read_Byte(void)
  72. {
  73.     return SPI_Flash_SendByte(DUMMY);
  74. }

  75. uint32_t SPI_Read_ID(void)
  76. {
  77.     uint32_t flash_id;

  78.     FLASH_SPI_CS_LOW();

  79.     SPI_Flash_SendByte(READ_JEDEC_ID);

  80.     flash_id=SPI_Flash_SendByte(DUMMY);
  81.     flash_id<<=8;
  82.     flash_id|=SPI_Flash_SendByte(DUMMY);
  83.     flash_id<<=8;
  84.     flash_id|=SPI_Flash_SendByte(DUMMY);

  85.     FLASH_SPI_CS_HIGH();

  86.     return flash_id;
  87. }

  88. //等待flash内部时序擦书完成
  89. void SPI_WaitForWriteEnd(void)
  90. {
  91.     uint8_t status_arg = 0;
  92.     FLASH_SPI_CS_LOW();
  93.     SPI_Flash_SendByte(READ_STATUS);
  94.     do
  95.     {
  96.         status_arg = SPI_Flash_SendByte(DUMMY);
  97.     } while ((status_arg & 0x01) == SET); // 判断为忙碌
  98.     FLASH_SPI_CS_HIGH();
  99. }

  100. //擦除FLASH指定扇区
  101. void SPI_ERASE_SECTRO(uint32_t addr)
  102. {
  103.     SPI_Write_Enable();
  104.     SPI_WaitForWriteEnd();
  105.     FLASH_SPI_CS_LOW();
  106.     SPI_Flash_SendByte(ERASE_SECTOR);

  107.     SPI_Flash_SendByte((uint8_t)(addr>>16)&0xff);
  108.     SPI_Flash_SendByte((uint8_t)(addr>>8)&0xff);
  109.     SPI_Flash_SendByte((uint8_t)(addr>>0)&0xff);
  110.     FLASH_SPI_CS_HIGH();

  111.     SPI_WaitForWriteEnd();
  112. }

  113. //读取FLASH的内容
  114. void SPI_Read_Data(uint32_t addr,uint8_t *buff,uint32_t numByteToRead)
  115. {
  116.     FLASH_SPI_CS_LOW();
  117.     SPI_Flash_SendByte(READ_DATA);
  118.    
  119.     SPI_Flash_SendByte((addr>>16)&0xff);
  120.     SPI_Flash_SendByte((addr>>8)&0xff);
  121.     SPI_Flash_SendByte((addr)&0xff);

  122.     while(numByteToRead--)
  123.     {
  124.         *buff = SPI_Flash_SendByte(DUMMY);
  125.         buff++;
  126.     }
  127.     FLASH_SPI_CS_HIGH();
  128. }

  129. //flash写入使能
  130. void SPI_Write_Enable(void)
  131. {
  132.     FLASH_SPI_CS_LOW();
  133.     SPI_Flash_SendByte(WRITE_ENABLE);
  134.     FLASH_SPI_CS_HIGH();
  135. }

  136. //写入
  137. void SPI_Write_Data(uint32_t addr,uint8_t *writebuff,uint32_t numByteToWrite)
  138. {
  139.     SPI_Write_Enable();
  140.     FLASH_SPI_CS_LOW();
  141.     SPI_Flash_SendByte(WRITE_DATA);
  142.    
  143.     SPI_Flash_SendByte((addr>>16)&0xff);
  144.     SPI_Flash_SendByte((addr>>8)&0xff);
  145.     SPI_Flash_SendByte((addr)&0xff);

  146.     while(numByteToWrite--)
  147.     {
  148.         *writebuff = SPI_Flash_SendByte(DUMMY);
  149.         writebuff++;
  150.     }
  151.     FLASH_SPI_CS_HIGH();

  152.     SPI_WaitForWriteEnd();
  153. }
复制代码
/************************************bsp_spi_flash.h**********************************************/
  1. #ifndef __BSP_SPI_FLASH_H
  2. #define __BSP_SPI_FLASH_H

  3. #include "stm32f10x.h"
  4. #include <stdio.h>
  5. #include <string.h>
  6. #include <stdio.h>

  7. #define FLASH_SPIx                 SPI1
  8. #define FLASH_SPI_APBxClock_FUN    RCC_APB2PeriphClockCmd
  9. #define FLASH_SPI_CLK              RCC_APB2Periph_SPI1

  10. // cs 引脚,普通io口
  11. #define FLASH_SPI_CS_APBxClock_FUN RCC_APB2PeriphClockCmd
  12. #define FLASH_SPI_CS_CLK           RCC_APB2Periph_GPIOC
  13. #define FLASH_SPI_CS_PORT          GPIOC
  14. #define FLASH_SPI_CS_PIN           GPIO_Pin_0

  15. // sck引脚
  16. #define FLASH_SPI_SCK_APBxClock_FUN RCC_APB2PeriphClockCmd
  17. #define FLASH_SPI_SCK_CLK           RCC_APB2Periph_GPIOA
  18. #define FLASH_SPI_SCK_PORT          GPIOA
  19. #define FLASH_SPI_SCK_PIN           GPIO_Pin_5

  20. // mosi引脚
  21. #define FLASH_SPI_MOSI_APBxClock_FUN RCC_APB2PeriphClockCmd
  22. #define FLASH_SPI_MOSI_CLK           RCC_APB2Periph_GPIOA
  23. #define FLASH_SPI_MOSI_PORT          GPIOA
  24. #define FLASH_SPI_MOSI_PIN           GPIO_Pin_6

  25. // miso引脚
  26. #define FLASH_SPI_MISO_APBxClock_FUN RCC_APB2PeriphClockCmd
  27. #define FLASH_SPI_MISO_CLK           RCC_APB2Periph_GPIOA
  28. #define FlASH_SPI_MISO_PORT          GPIOA
  29. #define FLASH_SPI_MISO_PIN           GPIO_Pin_7

  30. //cs引脚配置
  31. #define FLASH_SPI_CS_LOW()           GPIO_ResetBits(FLASH_SPI_CS_PORT, FLASH_SPI_CS_PIN)
  32. #define FLASH_SPI_CS_HIGH()          GPIO_SetBits(FLASH_SPI_CS_PORT, FLASH_SPI_CS_PIN)

  33. //等待超时时间
  34. #define SPI_FLAG_TIMEOUT             ((uint32_t)0x1000)
  35. #define SPI_LONG_TIMEOUT             ((uint32_t)(10*SPI_FLAG_TIMEOUT))

  36. //等待信息输出
  37. #define FLASH_DEBUG_ON               0

  38. #define FLASH_INFO(fmt,arg...)       printf("<<-FLASH-INFO->> "fmt"\n",##arg)
  39. #define FLASH_ERROR(fmt,arg...)      printf("<<-FLASH-ERROR->> "fmt"\n",##arg)
  40. #define FLASH_DEBUG(fmt, arg...)                         \
  41.     do {                                                 \
  42.         if (FLASH_DEBUG_ON)                              \
  43.             printf("<<-FLASH-ERROR->> [%d]" fmt "\n",__LINE__, ##arg) \
  44.     } while (0)

  45. /*************************************************** */
  46. #define DUMMY                        0x00   
  47. #define READ_JEDEC_ID                0x9f
  48. #define ERASE_SECTOR                 0x20
  49. #define READ_STATUS                  0x05
  50. #define READ_DATA                    0x03
  51. #define WRITE_ENABLE                 0x06
  52. #define WRITE_DATA                   0x02
  53. /*************************************************** */

  54. void SPI_Flash_Init(void);
  55. uint8_t SPI_Flash_SendByte(uint8_t date);
  56. uint8_t SPI_Flash_Read_Byte(void);
  57. uint32_t SPI_Read_ID(void);
  58. void SPI_ERASE_SECTRO(uint32_t addr);
  59. void SPI_WaitForWriteEnd(void);
  60. void SPI_Read_Data(uint32_t addr,uint8_t *buff,uint32_t numByteToRead);
  61. void SPI_Write_Enable(void);
  62. void SPI_Write_Data(uint32_t addr,uint8_t *writebuff,uint32_t numByteToWrite);

  63. #endif // !__BSP_SPI_FLASH_H
复制代码

如果main函数里面在SPI_WaitForWriteEnd()下方加延时或者加断点逐行调试的时候,串口助手上的内容是这样的。如果不加延时函数就是全部为0x00.
  1. ID=16777215
  2. 0xff
  3. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  4. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  5. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  6. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  7. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  8. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  9. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  10. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  11. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  12. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  13. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  14. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  15. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  16. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  17. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  18. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  19. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  20. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  21. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  22. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  23. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  24. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  25. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  26. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  27. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  28. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  29. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  30. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  31. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  32. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  33. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  34. 0xff0xff0xff0xff0xff0xff0xff0xff0xff0xff
  35. 0xff0xff0xff0xff0xff0xff0xff0xff0xf00x90
  36. 0xc00xc00x00x00x00x00x00x00x00x0
  37. 0x00x00x00x00x00x00x00x00x00x0
  38. 0x00x00x00x00x00x00x00x00x00x0
  39. 0x00x00x00x00x00x00x00x00x00x0
  40. 0x00x00x00x00x00x00x00x00x00x0
  41. 0x00x00x00x00x00x00x00x00x00x0
  42. 0x00x00x00x00x00x00x00x00x00x0
  43. 0x00x00x00x00x00x00x00x00x00x0
  44. 0x00x00x00x00x00x00x00x00x00x0
  45. 0x00x00x00x00x00x00x00x00x00x0
  46. 0x00x00x00x00x00x00x00x00x00x0
  47. 0x00x00x00x00x00x00x00x00x00x0
  48. 0x00x00x00x00x00x00x00x00x00x0
  49. 0x00x00x00x00x00x00x00x00x00x0
  50. 0x00x00x00x00x00x00x00x00x00x0
  51. 0x00x00x00x00x00x00x00x00x00x0
  52. 0x00x00x00x00x00x00x00x00x00x0
  53. 0x00x00x00x00x00x00x00x00x00x0
  54. 0x00x00x00x00x00x00x00x00x00x0
  55. 0x00x00x00x00x00x00x00x00x00x0
  56. 0x00x00x00x00x00x00x00x00x00x0
  57. 0x00x00x00x00x00x00x00x00x00x0
  58. 0x00x00x00x00x00x00x00x00x00x0
  59. 0x00x00x00x00x00x00x00x00x00x0
  60. 0x00x00x00x00x00x00x00x00x00x0
  61. 0x00x00x00x00x00x00x00x00x00x0
  62. 0x00x00x00x00x00x00x00x00x00x0
  63. 0x00x00x00x00x00x00x00x00x00x0
  64. 0x00x00x00x00x00x00x00x00x00x0
  65. 0x00x00x00x00x00x00x00x00x00x0
  66. 0x00x00x00x00x00x00x00x00x00x0
  67. 0x00x00x00x00x00x00x00x00x00x0
  68. 0x00x00x00x00x00x00x00x00x00x0
  69. 0x00x00x00x00x00x00x00x00x00x0
  70. 0x00x00x00x00x00x00x00x00x00x0
  71. 0x00x00x00x00x00x00x00x00x00x0
  72. 0x00x00x00x00x00x00x00x00x00x0
  73. 0x00x00x00x00x00x00x00x00x00x0
  74. 0x00x00x00x00x00x00x00x00x00x0
  75. 0x00x00x00x00x00x00x00x00x00x0
  76. 0x00x00x00x00x00x00x00x00x00x0
  77. 0x00x00x00x00x00x00x00x00x00x0
  78. 0x00x00x00x00x00x00x00x00x00x0
  79. 0x00x00x00x00x00x00x00x00x00x0
  80. 0x00x00x00x00x00x00x00x00x00x0
  81. 0x00x00x00x00x00x00x00x00x00x0
  82. 0x00x00x00x00x00x00x00x00x00x0
  83. 0x00x00x00x00x00x00x00x00x00x0
  84. 0x00x00x00x00x00x00x00x00x00x0
  85. 0x00x00x00x00x00x00x00x00x00x0
  86. 0x00x00x00x00x00x00x00x00x00x0
  87. 0x00x00x00x00x00x00x00x00x00x0
  88. 0x00x00x00x00x00x00x00x00x00x0
  89. 0x00x00x00x00x00x00x00x00x00x0
  90. 0x00x00x00x00x00x00x00x00x00x0
  91. 0x00x00x00x00x00x00x00x00x00x0
  92. 0x00x00x00x00x00x00x00x00x00x0
  93. 0x00x00x00x00x00x00x00x00x00x0
  94. 0x00x00x00x00x00x00x00x00x00x0
  95. 0x00x00x00x00x00x00x00x00x00x0
  96. 0x00x00x00x00x00x00x00x00x00x0
  97. 0x00x00x00x00x00x00x00x00x00x0
  98. 0x00x00x00x00x00x00x00x00x00x0
  99. 0x00x00x00x00x00x00x00x00x00x0
  100. 0x00x00x00x00x00x00x00x00x00x0
  101. 0x00x00x00x00x00x00x00x00x00x0
  102. 0x00x00x00x00x00x00x00x00x00x0
  103. 0x00x00x00x00x00x00x00x00x00x0
  104. 0x00x00x00x00x00x00x00x00x00x0
  105. 0x00x00x00x00x00x00x00x00x00x0
  106. 0x00x00x00x00x00x00x00x00x00x0
  107. 0x00x00x00x00x00x00x00x00x00x0
  108. 0x00x00x00x00x00x00x00x00x00x0
  109. 0x00x00x00x00x00x00x00x00x00x0
  110. 0x00x00x00x00x00x00x00x00x00x0
  111. 0x00x00x00x00x00x00x00x00x00x0
  112. 0x00x00x00x00x00x00x00x00x00x0
  113. 0x00x00x00x00x00x00x00x00x00x0
  114. 0x00x00x00x00x00x00x00x00x00x0
  115. 0x00x00x00x00x00x00x00x00x00x0
  116. 0x00x00x00x00x00x00x00x00x00x0
  117. 0x00x00x00x00x00x00x00x00x00x0
  118. 0x00x00x00x00x00x00x00x00x00x0
  119. 0x00x00x00x00x00x00x00x00x00x0
  120. 0x00x00x00x00x00x00x00x00x00x0
  121. 0x00x00x00x00x00x00x00x00x00x0
  122. 0x00x00x00x00x00x00x00x00x00x0
  123. 0x00x00x00x00x00x00x00x00x00x0
  124. 0x00x00x00x00x00x00x00x00x00x0
  125. 0x00x00x00x00x00x00x00x00x00x0
  126. 0x00x00x00x00x00x00x00x00x00x0
  127. 0x00x00x00x00x00x00x00x00x00x0
  128. 0x00x00x00x00x00x00x00x00x00x0
  129. 0x00x00x00x00x00x00x00x00x00x0
  130. 0x00x00x00x00x00x00x00x00x00x0
  131. 0x00x00x00x00x00x00x00x00x00x0
  132. 0x00x00x00x00x00x00x00x00x00x0
  133. 0x00x00x00x00x00x00x00x00x00x0
  134. 0x00x00x00x00x00x00x00x00x00x0
  135. 0x00x00x00x00x00x00x00x00x00x0
  136. 0x00x00x00x00x00x00x00x00x00x0
  137. 0x00x00x00x00x00x00x00x00x00x0
  138. 0x00x00x00x00x00x00x00x00x00x0
  139. 0x00x00x00x00x00x00x00x00x00x0
  140. 0x00x00x00x00x00x00x00x00x00x0
  141. 0x00x00x00x00x00x00x00x00x00x0
  142. 0x00x00x00x00x00x00x00x00x00x0
  143. 0x00x00x00x00x00x00x00x00x00x0
  144. 0x00x00x00x00x00x00x00x00x00x0
  145. 0x00x00x00x00x00x00x00x00x00x0
  146. 0x00x00x00x00x00x00x00x00x00x0
  147. 0x00x00x00x00x00x00x00x00x00x0
  148. 0x00x00x00x00x00x00x00x00x00x0
  149. 0x00x00x00x00x00x00x00x00x00x0
  150. 0x00x00x00x00x00x00x00x00x00x0
  151. 0x00x00x00x00x00x00x00x00x00x0
  152. 0x00x00x00x00x00x00x00x00x00x0
  153. 0x00x00x00x00x00x00x00x00x00x0
  154. 0x00x00x00x00x00x00x00x00x00x0
  155. 0x00x00x00x00x00x00x00x00x00x0
  156. 0x00x00x00x00x00x00x00x00x00x0
  157. 0x00x00x00x00x00x00x00x00x00x0
  158. 0x00x00x00x00x00x00x00x00x00x0
  159. 0x00x00x00x00x00x00x00x00x00x0
  160. 0x00x00x00x00x00x00x00x00x00x0
  161. 0x00x00x00x00x00x00x00x00x00x0
  162. 0x00x00x00x00x00x00x00x00x00x0
  163. 0x00x00x00x00x00x00x00x00x00x0
  164. 0x00x00x00x00x00x00x00x00x00x0
  165. 0x00x00x00x00x00x00x00x00x00x0
  166. 0x00x00x00x00x00x00x00x00x00x0
  167. 0x00x00x00x00x00x00x00x00x00x0
  168. 0x00x00x00x00x00x00x00x00x00x0
  169. 0x00x00x00x00x00x00x00x00x00x0
  170. 0x00x00x00x00x00x00x00x00x00x0
  171. 0x00x00x00x00x00x00x00x00x00x0
  172. 0x00x00x00x00x00x00x00x00x00x0
  173. 0x00x00x00x00x00x00x00x00x00x0
  174. 0x00x00x00x00x00x00x00x00x00x0
  175. 0x00x00x00x00x00x00x00x00x00x0
  176. 0x00x00x00x00x00x00x00x00x00x0
  177. 0x00x00x00x00x00x00x00x00x00x0
  178. 0x00x00x00x00x00x00x00x00x00x0
  179. 0x00x00x00x00x00x00x00x00x00x0
  180. 0x00x00x00x00x00x00x00x00x00x0
  181. 0x00x00x00x00x00x00x00x00x00x0
  182. 0x00x00x00x00x00x00x00x00x00x0
  183. 0x00x00x00x00x00x00x00x00x00x0
  184. 0x00x00x00x00x00x00x00x00x00x0
  185. 0x00x00x00x00x00x00x00x00x00x0
  186. 0x00x00x00x00x00x00x00x00x00x0
  187. 0x00x00x00x00x00x00x00x00x00x0
  188. 0x00x00x00x00x00x00x00x00x00x0
  189. 0x00x00x00x00x00x00x00x00x00x0
  190. 0x00x00x00x00x00x00x00x00x00x0
  191. 0x00x00x00x00x00x00x00x00x00x0
  192. 0x00x00x00x00x00x00x00x00x00x0
  193. 0x00x00x00x00x00x00x00x00x00x0
  194. 0x00x00x00x00x00x00x00x00x00x0
  195. 0x00x00x00x00x00x00x00x00x00x0
  196. 0x00x00x00x00x00x00x00x00x00x0
  197. 0x00x00x00x00x00x00x00x00x00x0
  198. 0x00x00x00x00x00x00x00x00x00x0
  199. 0x00x00x00x00x00x00x00x00x00x0
  200. 0x00x00x00x00x00x00x00x00x00x0
  201. 0x00x00x00x00x00x00x00x00x00x0
  202. 0x00x00x00x00x00x00x00x00x00x0
  203. 0x00x00x00x00x00x00x00x00x00x0
  204. 0x00x00x00x00x00x00x00x00x00x0
  205. 0x00x00x00x00x00x00x00x00x00x0
  206. 0x00x00x00x00x00x00x00x00x00x0
  207. 0x00x00x00x00x00x00x00x00x00x0
  208. 0x00x00x00x00x00x00x00x00x00x0
  209. 0x00x00x00x00x00x00x00x00x00x0
  210. 0x00x00x00x00x00x00x00x00x00x0
  211. 0x00x00x00x00x00x00x00x00x00x0
  212. 0x00x00x00x00x00x00x00x00x00x0
  213. 0x00x00x00x00x00x00x00x00x00x0
  214. 0x00x00x00x00x00x00x00x00x00x0
  215. 0x00x00x00x00x00x00x00x00x00x0
  216. 0x00x00x00x00x00x00x00x00x00x0
  217. 0x00x00x00x00x00x00x00x00x00x0
  218. 0x00x00x00x00x00x00x00x00x00x0
  219. 0x00x00x00x00x00x00x00x00x00x0
  220. 0x00x00x00x00x00x00x00x00x00x0
  221. 0x00x00x00x00x00x00x00x00x00x0
  222. 0x00x00x00x00x00x00x00x00x00x0
  223. 0x00x00x00x00x00x00x00x00x00x0
  224. 0x00x00x00x00x00x00x00x00x00x0
  225. 0x00x00x00x00x00x00x00x00x00x0
  226. 0x00x00x00x00x00x00x00x00x00x0
  227. 0x00x00x00x00x00x00x00x00x00x0
  228. 0x00x00x00x00x00x00x00x00x00x0
  229. 0x00x00x00x00x00x00x00x00x00x0
  230. 0x00x00x00x00x00x00x00x00x00x0
  231. 0x00x00x00x00x00x00x00x00x00x0
  232. 0x00x00x00x00x00x00x00x00x00x0
  233. 0x00x00x00x00x00x00x00x00x00x0
  234. 0x00x00x00x00x00x00x00x00x00x0
  235. 0x00x00x00x00x00x00x00x00x00x0
  236. 0x00x00x00x00x00x00x00x00x00x0
  237. 0x00x00x00x00x00x00x00x00x00x0
  238. 0x00x00x00x00x00x00x00x00x00x0
  239. 0x00x00x00x00x00x00x00x00x00x0
  240. 0x00x00x00x00x00x00x00x00x00x0
  241. 0x00x00x00x00x00x00x00x00x00x0
  242. 0x00x00x00x00x00x00x00x00x00x0
  243. 0x00x00x00x00x00x00x00x00x00x0
  244. 0x00x00x00x00x00x00x00x00x00x0
  245. 0x00x00x00x00x00x00x00x00x00x0
  246. 0x00x00x00x00x00x00x00x00x00x0
  247. 0x00x00x00x00x00x00x00x00x00x0
  248. 0x00x00x00x00x00x00x00x00x00x0
  249. 0x00x00x00x00x00x00x00x00x00x0
  250. 0x00x00x00x00x00x00x00x00x00x0
  251. 0x00x00x00x00x00x00x00x00x00x0
  252. 0x00x00x00x00x00x00x00x00x00x0
  253. 0x00x00x00x00x00x00x00x00x00x0
  254. 0x00x00x00x00x00x00x00x00x00x0
  255. 0x00x00x00x00x00x00x00x00x00x0
  256. 0x00x00x00x00x00x00x00x00x00x0
  257. 0x00x00x00x00x00x00x00x00x00x0
  258. 0x00x00x00x00x00x00x00x00x00x0
  259. 0x00x00x00x00x00x00x00x00x00x0
  260. 0x00x00x00x00x00x00x00x00x00x0
  261. 0x00x00x00x00x00x00x00x00x00x0
  262. 0x00x00x00x00x00x00x00x00x00x0
  263. 0x00x00x00x00x00x00x00x00x00x0
  264. 0x00x00x00x00x00x00x00x00x00x0
  265. 0x00x00x00x00x00x00x00x00x00x0
  266. 0x00x00x00x00x00x00x00x00x00x0
  267. 0x00x00x00x00x00x00x00x00x00x0
  268. 0x00x00x00x00x00x00x00x00x00x0
  269. 0x00x00x00x00x00x00x00x00x00x0
  270. 0x00x00x00x00x00x00x00x00x00x0
  271. 0x00x00x00x00x00x00x00x00x00x0
  272. 0x00x00x00x00x00x00x00x00x00x0
  273. 0x00x00x00x00x00x00x00x00x00x0
  274. 0x00x00x00x00x00x00x00x00x00x0
  275. 0x00x00x00x00x00x00x00x00x00x0
  276. 0x00x00x00x00x00x00x00x00x00x0
  277. 0x00x00x00x00x00x00x00x00x00x0
  278. 0x00x00x00x00x00x00x00x00x00x0
  279. 0x00x00x00x00x00x00x00x00x00x0
  280. 0x00x00x00x00x00x00x00x00x00x0
  281. 0x00x00x00x00x00x00x00x00x00x0
  282. 0x00x00x00x00x00x00x00x00x00x0
  283. 0x00x00x00x00x00x00x00x00x00x0
  284. 0x00x00x00x00x00x00x00x00x00x0
  285. 0x00x00x00x00x00x00x00x00x00x0
  286. 0x00x00x00x00x00x00x00x00x00x0
  287. 0x00x00x00x00x00x00x00x00x00x0
  288. 0x00x00x00x00x00x00x00x00x00x0
  289. 0x00x00x00x00x00x00x00x00x00x0
  290. 0x00x00x00x00x00x00x00x00x00x0
  291. 0x00x00x00x00x00x00x00x00x00x0
  292. 0x00x00x00x00x00x00x00x00x00x0
  293. 0x00x00x00x00x00x00x00x00x00x0
  294. 0x00x00x00x00x00x00x00x00x00x0
  295. 0x00x00x00x00x00x00x00x00x00x0
  296. 0x00x00x00x00x00x00x00x00x00x0
  297. 0x00x00x00x00x00x00x00x00x00x0
  298. 0x00x00x00x00x00x00x00x00x00x0
  299. 0x00x00x00x00x00x00x00x00x00x0
  300. 0x00x00x00x00x00x00x00x00x00x0
  301. 0x00x00x00x00x00x00x00x00x00x0
  302. 0x00x00x00x00x00x00x00x00x00x0
  303. 0x00x00x00x00x00x00x00x00x00x0
  304. 0x00x00x00x00x00x00x00x00x00x0
  305. 0x00x00x00x00x00x00x00x00x00x0
  306. 0x00x00x00x00x00x00x00x00x00x0
  307. 0x00x00x00x00x00x00x00x00x00x0
  308. 0x00x00x00x00x00x00x00x00x00x0
  309. 0x00x00x00x00x00x00x00x00x00x0
  310. 0x00x00x00x00x00x00x00x00x00x0
  311. 0x00x00x00x00x00x00x00x00x00x0
  312. 0x00x00x00x00x00x00x00x00x00x0
  313. 0x00x00x00x00x00x00x00x00x00x0
  314. 0x00x00x00x00x00x00x00x00x00x0
  315. 0x00x00x00x00x00x00x00x00x00x0
  316. 0x00x00x00x00x00x00x00x00x00x0
  317. 0x00x00x00x00x00x00x00x00x00x0
  318. 0x00x00x00x00x00x00x00x00x00x0
  319. 0x00x00x00x00x00x00x00x00x00x0
  320. 0x00x00x00x00x00x00x00x00x00x0
  321. 0x00x00x00x00x00x00x00x00x00x0
  322. 0x00x00x00x00x00x00x00x00x00x0
  323. 0x00x00x00x00x00x00x00x00x00x0
  324. 0x00x00x00x00x00x00x00x00x00x0
  325. 0x00x00x00x00x00x00x00x00x00x0
  326. 0x00x00x00x00x00x00x00x00x00x0
  327. 0x00x00x00x00x00x00x00x00x00x0
  328. 0x00x00x00x00x00x00x00x00x00x0
  329. 0x00x00x00x00x00x00x00x00x00x0
  330. 0x00x00x00x00x00x00x00x00x00x0
  331. 0x00x00x00x00x00x00x00x00x00x0
  332. 0x00x00x00x00x00x00x00x00x00x0
  333. 0x00x00x00x00x00x00x00x00x00x0
  334. 0x00x00x00x00x00x00x00x00x00x0
  335. 0x00x00x00x00x00x00x00x00x00x0
  336. 0x00x00x00x00x00x00x00x00x00x0
  337. 0x00x00x00x00x00x00x00x00x00x0
  338. 0x00x00x00x00x00x00x00x00x00x0
  339. 0x00x00x00x00x00x00x00x00x00x0
  340. 0x00x00x00x00x00x00x00x00x00x0
  341. 0x00x00x00x00x00x00x00x00x00x0
  342. 0x00x00x00x00x00x00x00x00x00x0
  343. 0x00x00x00x00x00x00x00x00x00x0
  344. 0x00x00x00x00x00x00x00x00x00x0
  345. 0x00x00x00x00x00x00x00x00x00x0
  346. 0x00x00x00x00x00x00x00x00x00x0
  347. 0x00x00x00x00x00x00x00x00x00x0
  348. 0x00x00x00x00x00x00x00x00x00x0
  349. 0x00x00x00x00x00x00x00x00x00x0
  350. 0x00x00x00x00x00x00x00x00x00x0
  351. 0x00x00x00x00x00x00x00x00x00x0
  352. 0x00x00x00x00x00x00x00x00x00x0
  353. 0x00x00x00x00x00x00x00x00x00x0
  354. 0x00x00x00x00x00x00x00x00x00x0
  355. 0x00x00x00x00x00x00x00x00x00x0
  356. 0x00x00x00x00x00x00x00x00x00x0
  357. 0x00x00x00x00x00x00x00x00x00x0
  358. 0x00x00x00x00x00x00x00x00x00x0
  359. 0x00x00x00x00x00x00x00x00x00x0
  360. 0x00x00x00x00x00x00x00x00x00x0
  361. 0x00x00x00x00x00x00x00x00x00x0
  362. 0x00x00x00x00x00x00x00x00x00x0
  363. 0x00x00x00x00x00x00x00x00x00x0
  364. 0x00x00x00x00x00x00x00x00x00x0
  365. 0x00x00x00x00x00x00x00x00x00x0
  366. 0x00x00x00x00x00x00x00x00x00x0
  367. 0x00x00x00x00x00x00x00x00x00x0
  368. 0x00x00x00x00x00x00x00x00x00x0
  369. 0x00x00x00x00x00x00x00x00x00x0
  370. 0x00x00x00x00x00x00x00x00x00x0
  371. 0x00x00x00x00x00x00x00x00x00x0
  372. 0x00x00x00x00x00x00x00x00x00x0
  373. 0x00x00x00x00x00x00x00x00x00x0
  374. 0x00x00x00x00x00x00x00x00x00x0
  375. 0x00x00x00x00x00x00x00x00x00x0
  376. 0x00x00x00x00x00x00x00x00x00x0
  377. 0x00x00x00x00x00x00x00x00x00x0
  378. 0x00x00x00x00x00x00x00x00x00x0
  379. 0x00x00x00x00x00x00x00x00x00x0
  380. 0x00x00x00x00x00x00x00x00x00x0
  381. 0x00x00x00x00x00x00x00x00x00x0
  382. 0x00x00x00x00x00x00x00x00x00x0
  383. 0x00x00x00x00x00x00x00x00x00x0
  384. 0x00x00x00x00x00x00x00x00x00x0
  385. 0x00x00x00x00x00x00x00x00x00x0
  386. 0x00x00x00x00x00x00x00x00x00x0
  387. 0x00x00x00x00x00x00x00x00x00x0
  388. 0x00x00x00x00x00x00x00x00x00x0
  389. 0x00x00x00x00x00x00x00x00x00x0
  390. 0x00x00x00x00x00x00x00x00x00x0
  391. 0x00x00x00x00x00x00x00x00x00x0
  392. 0x00x00x00x00x00x00x00x00x00x0
  393. 0x00x00x00x00x00x00x00x00x00x0
  394. 0x00x00x00x00x00x00x00x00x00x0
  395. 0x00x00x00x00x00x00x00x00x00x0
  396. 0x00x00x00x00x00x00x00x00x00x0
  397. 0x00x00x00x00x00x00x00x00x00x0
  398. 0x00x00x00x00x00x00x00x00x00x0
  399. 0x00x00x00x00x00x00x00x00x00x0
  400. 0x00x00x00x00x00x00x00x00x00x0
  401. 0x00x00x00x00x00x00x00x00x00x0
  402. 0x00x00x00x00x00x00x00x00x00x0
  403. 0x00x00x00x00x00x00x00x00x00x0
  404. 0x00x00x00x00x00x00x00x00x00x0
  405. 0x00x00x00x00x00x00x00x00x00x0
  406. 0x00x00x00x00x00x00x00x00x00x0
  407. 0x00x00x00x00x00x00x00x00x00x0
  408. 0x00x00x00x00x00x00x00x00x00x0
  409. 0x00x00x00x00x00x00x00x00x00x0
  410. 0x00x00x00x00x00x00x00x00x00x0
  411. 0x00x00x00x00x00x00x00x00x00x0
  412. 0x00x00x00x00x0
复制代码
bsp_spi_flash.h
===========================================================
[url=]6.png[/url]
[url=][/url]
[url=][url=]7.png[/url][/url]
[url=][url=][/url][/url]
[url=][url=][url=]===========================================================
main.c
===========================================================
[url=]9.png[/url]
[url=][/url]
[/url][/url][/url]

1.png
2.png
3.png
4.png
6.png
7.png
9.png
野火论坛202601161954295179..png
7.png
6.png
4.png
3.png
2.png
1.png
9.png
回复

使用道具 举报

发表于 4 天前 | 显示全部楼层
直接将工程以压缩包发上来吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
MO12138 发表于 2026-1-23 09:20
直接将工程以压缩包发上来吧

好的,压缩包加到第二行了。 09 flash.zip (8.62 MB, 下载次数: 2)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2026-1-27 02:25 , Processed in 0.114269 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表