读取flash中的数据后无法正常输出

2019-07-20 22:10发布

用同样的语句两次读取flash中的数据,通过串口输出的结果不同,而且两次输出后的输出语句无法执行。
                        u8 datatemp[size+7];
                        u32 count=0;
                        int i;
                       
                        SPI_Flash_Read(datatemp,count,size+7);

                                for(i=0;i<size+7;i++)
                                {
                                        printf("%c",datatemp[i]);
                                }

                       
                        SPI_Flash_Read(datatemp,count,size+7);

                                for(i=0;i<size+7;i++)
                                {
                                        printf("%c",datatemp[i]);
                                }
                               
                                         printf("position =%d ",posi);

以上是输出语句,两次循环输出的结果不同,最后的printf("position =%d ",posi);没有执行。
16:34 b set the LEDabcdefghijklmno
ijklmno
以上是上位机通过串口接收到的数据,第一行是正确的,第二行按理说应该和第一行一样,却只显示了其中一部分。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-07-20 22:30
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-21 04:02
 精彩回答 2  元偷偷看……
氢氦李铍硼
3楼-- · 2019-07-21 08:24
正点原子 发表于 2016-5-14 19:49
你size的值不一样了哦。

size是宏定义的,这两次循环输出中的size应该是一样的。我调整了一下读取的位置和读取的长度,显示不乱了,不过又有新问题。我利用RTC读取到小时和分钟,然后写入flash中再读出来利用串口输出,第一个时间是正常的,后面的都是0XFF
20:10 b set the LEDabcdefghijklmno
??????a set the LEDabcdefghijklmno
??????b set the LEDabcdefghijklmno
??????a set the LEDabcdefghijklmno
??????c set the LEDabcdefghijklmno
??????a set the LEDabcdefghijklmno
氢氦李铍硼
4楼-- · 2019-07-21 13:11
正点原子 发表于 2016-5-18 22:00
仿真跟踪看看吧

之前时间写入部分语句是写在一个函数里再调用的,只有第一次调用正常,后来把这些语句在每次需要写入时间的地方都直接插进去就没问题了,不知道之前问题出在哪里,不过已经达到预期的效果了

一周热门 更多>