python - 将 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]);}
我想我应该使用I2C
object from machine
,但我不确定C
版本中发生了什么
解决方案
让我们剖析一下宏线:
#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
.
推荐阅读
- node.js - Heroku 上的节点应用程序 - 出现“应用程序错误”
- python - 如何提取文本文件中 2 个匹配项(来自 csv)之间存在的数据?
- python - 我们可以使用 pd.cut 获得 bin 和标签的中点或最右边的数字吗?
- tensorflow - 模块 tensorflow 没有属性获取默认图
- c# - 如何在 C# 中打印 char[,]?
- java - 对于任何输入,程序似乎总是返回 1
- amazon-web-services - 我无法使用 ssh 连接 aws emr
- ios - 如何解决“AddInstanceForFactory:没有为 id 注册工厂
“ 错误? - r - 软件包的安装具有非零退出状态
- gltf - Сan在一个“采样器”(glTF,glb)中有不同的“输入”值