打印

读取Flash问题

[复制链接]
1562|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tatto_chen|  楼主 | 2014-8-13 11:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32L152系列的读取没有程序部分的Flash数据为0?我读取数据0x08000000部分的数据和生成的.hex文件对比,数据是对的,读取程序区后面的数据部分发现怎么读到的数据都是0;不知道到底是读取的函数问题还是硬件就是这样。有没有大神遇到过这种情况?求帮助、、、
沙发
ifreecoding| | 2014-8-13 11:13 | 只看该作者
你是怎么读的?读取的地址是多少?

使用特权

评论回复
板凳
tatto_chen|  楼主 | 2014-8-13 11:24 | 只看该作者
ifreecoding 发表于 2014-8-13 11:13
你是怎么读的?读取的地址是多少?

FLASH_PrefetchBufferCmd(DISABLE);
        FLASH_ReadAccess64Cmd(DISABLE);
        FLASH_SetLatency(FLASH_Latency_1);
       
       
        recv_3[0] =( *(uint32_t *) (0x0801F000)) & 0xff;
        recv_3[1] =( *(uint32_t *) (0x0801F004)) & 0xff;
       
        recv_3[2] =( *(uint32_t *) (0x0801F008)) & 0xff;
        recv_3[3] =( *(uint32_t *) (0x0801F00C)) & 0xff;
       
        delay_ms(50);
        USART_SendData(USART2,recv_3[0]);
        delay_ms(500);
        USART_SendData(USART2,recv_3[1]);
        delay_ms(500);
        USART_SendData(USART2,recv_3[2]);
        delay_ms(500);
        USART_SendData(USART2,recv_3[3]);
        delay_ms(500);

使用特权

评论回复
地板
tatto_chen|  楼主 | 2014-8-13 11:25 | 只看该作者
ifreecoding 发表于 2014-8-13 11:13
你是怎么读的?读取的地址是多少?

可以保证的是读取地址是没有程序信息的,读取到的数据一直是0。

使用特权

评论回复
5
ifreecoding| | 2014-8-13 13:09 | 只看该作者
你读的地址在124K,没有超出你FLASH范围吧?

使用特权

评论回复
6
tatto_chen|  楼主 | 2014-8-13 15:03 | 只看该作者
ifreecoding 发表于 2014-8-13 13:09
你读的地址在124K,没有超出你FLASH范围吧?

没有,Flash是128K的,我能读到数据,只是读到的数据都为0。

使用特权

评论回复
7
tatto_chen|  楼主 | 2014-8-15 14:54 | 只看该作者
经过测试我发现stm32L152系列没有写程序的部分读取到的数据确实为0,读写用内部的Flash.C的文件就行,只不过写之前一定要擦出该扇区,否则写入会出错。希望大家用的时候多注意。

使用特权

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

本版积分规则

5

主题

16

帖子

0

粉丝