[MCU] 【AT-START-F403A测评】Part5:片上Flash例程测试

w494143467   2020-12-14 14:55 楼主

1.介绍

对于芯片来说,Flash是非常重要的,这一篇先来讲一下Flash的使用,官方已经给出Demo了,所以我们只要知道它是如何工作的就可以使用了,性能方面也是可以进行测试的,不过这一篇先不讲。

2.测试

首先打开Flash读写例程,使用的例程如图所示。

1.png

使用Keil打开例程之后,可以看到Flash写入的地址为【0x80000000+1024*522】,分别创建了Flash的读Buffer和写Buffer,最后在主程序中运行读和写Flash过程。

2.png

为了能够看到,什么时候进行的读写,修改了一下main里面的程序,如下所示。

int main(void)
{

  Delay_init();
  UART_Print_Init(115200);	
  AT32_LEDn_Init(LED2);				
  AT32_LEDn_Init(LED3);			
	printf("Flash Demo Start!\r\n");

  //Fill BufferWrite data to test
  for(Index=0;Index<TEST_BUFEER_SIZE;Index++)
  {
    BufferWrite[Index]=Index;
  }
		
    FLASH_Write(TEST_FLASH_ADDRESS_START,BufferWrite,TEST_BUFEER_SIZE);		//Write data to flash
		printf("Write Success!\r\n");
    FLASH_Read(TEST_FLASH_ADDRESS_START,BufferRead,TEST_BUFEER_SIZE);   	//read data from flash
		printf("Read Success!\r\n");

  if(Buffercmp(BufferWrite,BufferRead,TEST_BUFEER_SIZE)==PASSED)        //Compare the buffer
  {
    AT32_LEDn_ON(LED2);
    AT32_LEDn_OFF(LED3);    
  }
  else
  {
    AT32_LEDn_OFF(LED2);
    AT32_LEDn_ON(LED3);  
  }

  while(1)
  {

  }
}

然后接上串口,板子上的串口发送为PA9,将串口模块的RX接到板子上的PA9即可,最后运行程序,串口上打印的内容如下图,好像读取时速度挺快的,串口都没有识别出来是新的一条数据。

3.png

接下来调试看一下Flash的存储状态,首先运行程序到while(1),然后查看【0x80000000+1024*522】地址上的内容,可以看到和写入的内容是一样的,从0开始存储数据。

4.png

然后看一下接收后的Buffer内容是否一致,可以看到接收的Buffer中的内容和发送Buffer的内容是一致的,说明读取也是正常的。

5.png

3.总结

AT-START-F403A的Flash读写还是很好用的,但是不知道一次最多可以读写多少数据,下一篇我们就来测试一下。

回复评论 (5)

1 来自 2楼 okhxyyo 

玩板看这里: https://bbs.eeworld.com.cn/elecplay.html EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
点赞  2020-12-21 14:37

封装挺好的,有些厂的flash操作,封装的那才是一个复杂。

默认摸鱼,再摸鱼。2022、9、28
点赞  2020-12-14 20:55

是啊,不过有些封装起来是为了做存储管理系统,我就遇到有。

点赞  2020-12-14 21:24

不错,存储内容不是很大又不是很频繁的话可以用。一个板子省几毛钱。

点赞  2021-2-23 15:56

整理的很好

点赞  2021-2-25 18:48
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复