我正在尝试将C代码重写为python,但我不确定如何在python中表达这一部分
#include <EEPROM.h>
#define EEPROM_write(address, p) {int i = 0; byte *pp = (byte*)&(p);for(; i < sizeof(p); i++) EEPROM.write(address+i, pp[i]);}我认为我应该使用machine中的I2C对象,但我不确定C版本中发生了什么
发布于 2021-09-17 09:09:28
让我们来分析一下宏代码行:
#define
这是用于定义宏的预处理器命令。
EEPROM_write(address, p)
这个宏名为"EEPROM_write“,它有两个参数,"address”和"p“。由于预处理器在这里主要作为搜索和替换机制工作,因此没有类型。它们取决于使用宏的站点。
{
int i = 0;
byte *pp = (byte*)&(p);
for (; i < sizeof(p); i++)
EEPROM.write(address+i, pp[i]);
}这是替换的格式化C代码。它由单个语句块组成,预处理器将用在使用宏时给出的参数替换每次出现的address和p。
代码块将p的地址作为byte指针。然后循环遍历p的所有字节(包括填充),并使用连续的地址(从address开始)和p的相应字节调用EEPROM.write()。
https://stackoverflow.com/questions/69220220
复制相似问题