当前位置:首页Arduino > 正文

Arduino利用PROGMEM将数据写到闪存

作者:野牛程序员:2023-08-21 10:37:13Arduino阅读 2845

在Arduino中,可以使用PROGMEM关键字将数据存储到程序存储器(闪存)中,而不是存储在RAM中。这对于保存大量的常量数据,如文本、图像、音频等非易失性数据非常有用。以下是一个示例,演示如何使用PROGMEM将数据写入闪存:

#include <avr/pgmspace.h>

// 声明一个存储在闪存中的字符串
const char myString[] PROGMEM = "Hello, World!";

void setup() {
  // 初始化串口通信
  Serial.begin(9600);
}

void loop() {
  // 从闪存中读取字符串并通过串口发送
  char buffer[20];
  strcpy_P(buffer, (char*)pgm_read_word(&myString));
  Serial.println(buffer);

  delay(1000);
}

在这个示例中,首先使用PROGMEM关键字将字符串存储到程序存储器中。然后,在loop函数中使用pgm_read_word来从闪存中读取字符串,并使用Serial.println将其发送到串口以进行输出。

请注意以下几点:

  1. 使用PROGMEM存储的数据不能直接使用标准函数(如strcpy)处理,需要使用特定的pgm_read_xxx函数来从闪存中读取数据。pgm_read_word用于读取16位数据。

  2. 由于闪存读取是比较耗时的操作,因此要确保代码不会频繁读取闪存中的数据,以免影响性能。

  3. 需要包含<avr/pgmspace.h>头文件来使用PROGMEM相关函数。

这只是一个简单的示例,可以根据需要将更多数据存储到闪存中,并使用PROGMEM来访问它们。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击