【问题标题】:Rewrite I2C control C function to Python将 I2C 控制 C 函数重写为 Python
【发布时间】:2021-11-12 03:25:30
【问题描述】:

我正在尝试将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 版本中发生了什么

【问题讨论】:

    标签: python c python-3.x


    【解决方案1】:

    让我们剖析一下宏线:

    #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 代码。它由单个语句块组成,预处理器会将每次出现的addressp 替换为使用宏时给出的参数。

    代码块将p的地址作为byte指针。然后它遍历p 的所有字节(包括填充)并使用连续地址(从address 开始)和p 的相应字节调用EEPROM.write()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-02
      • 2016-01-21
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-03
      • 2022-12-19
      相关资源
      最近更新 更多