OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3858|回复: 4

大神,请问STM32 F429 FLSAH串行读写程序执行一半不执行了怎么回事

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-2-1
在线时间
1 小时
发表于 2018-2-1 13:10:14 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 十六画 于 2018-2-1 13:14 编辑

这是串口调试工具打印的结果:
这是一个16M串行flash(W25Q128)实验

FlashID is 0xFFFFFF,  Manufacturer Device ID is 0xFF

检测到SPI FLASH W25Q128 !

代码是*火FLASH读写的原码。。
这是main函数代码:     执行到 if 语句第一句后面的不执行了
int main(void)
{        
        LED_GPIO_Config();
        LED_BLUE;
       
        /* 配置串口1为:115200 8-N-1 */
        Debug_USART_Config();

        printf("\r\n这是一个16M串行flash(W25Q128)实验 \r\n");
       
        /* 16M串行flash W25Q128初始化 */
        SPI_FLASH_Init();
       
        /* 获取 Flash Device ID */
        DeviceID = SPI_FLASH_ReadDeviceID();
       
        Delay( 200 );
       
        /* 获取 SPI Flash ID */
        FlashID = SPI_FLASH_ReadID();
       
        printf("\r\nFlashID is 0x%X,  Manufacturer Device ID is 0x%X\r\n", FlashID, DeviceID);
       
        /* 检验 SPI Flash ID */
        if (FlashID == sFLASH_ID)
        {       
                printf("\r\n检测到SPI FLASH W25Q128 !\r\n");
               
                /* 擦除将要写入的 SPI FLASH 扇区,FLASH写入前要先擦除 */
                SPI_FLASH_SectorErase(FLASH_SectorToErase);                  
               
                /* 将发送缓冲区的数据写到flash中 */
                SPI_FLASH_BufferWrite(Tx_Buffer, FLASH_WriteAddress, BufferSize);
                printf("\r\n写入的数据为:\r\n%s", Tx_Buffer);
               
                /* 将刚刚写入的数据读出来放到接收缓冲区中 */
                SPI_FLASH_BufferRead(Rx_Buffer, FLASH_ReadAddress, BufferSize);
                printf("\r\n读出的数据为:\r\n%s", Rx_Buffer);
               
                /* 检查写入的数据与读出的数据是否相等 */
                TransferStatus1 = Buffercmp(Tx_Buffer, Rx_Buffer, BufferSize);
               
                if( PASSED == TransferStatus1 )
                {   
                        LED_GREEN;
                        printf("\r\n16M串行flash(W25Q128)测试成功!\n\r");
                }
                else
                {        
                        LED_RED;
                        printf("\r\n16M串行flash(W25Q128)测试失败!\n\r");
                }
        }// if (FlashID == sFLASH_ID)
        else
        {   
                LED_RED;
                printf("\r\n获取不到 W25Q128 ID!\n\r");
        }
       
        SPI_Flash_PowerDown();  
        while(1);  
}


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-2-2 02:02:36 | 显示全部楼层
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-2-1
在线时间
1 小时
 楼主| 发表于 2018-2-5 08:14:05 | 显示全部楼层
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-2-1
在线时间
1 小时
 楼主| 发表于 2018-2-5 08:14:33 | 显示全部楼层

原子哥也不知道为什么吗?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-2-6 01:32:44 | 显示全部楼层
十六画 发表于 2018-2-5 08:14
原子哥也不知道为什么吗?

你可以用用我们的代码
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 06:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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