首页 > 解决方案 > 将 I2C 控制 C 函数重写为 Python

问题描述

我正在尝试将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]);}

我想我应该使用I2Cobject from machine,但我不确定C版本中发生了什么

标签: pythoncpython-3.x

解决方案


让我们剖析一下宏线:

#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(包括填充)并EEPROM.write()使用连续地址(从 开始address)和p.


推荐阅读