我正在使用 Raspberry Pi 与连接到 GPIO 的自定义硬件接口。控制软件是用 Python 编写的,自定义硬件的接口是用 C 编写的,因为它是一种更快的 C 实现。我现在需要开始从我的 Python 调用我的 C 函数,并且最近一直在学习如何在 Cython 中包装 C。除了将 Python 列表传递给 C 函数之外,我已经完成了所有工作。
我的自定义硬件需要发送 1 到 32 个字节的任何地方,因此使用数组。
Cython 教程和我在网上阅读的其他参考资料非常简单,不包括如何将列表传递给 C、使用 numpy(我没有使用),或者使用非常复杂的代码示例,这些示例缺乏足够的文档让我理解它适当地。
我现在拥有的是:
测试.c
#include <stdio.h>
#include "test.h"
void pop(void) {
a[0] = 0x55;
a[1] = 0x66;
a[2] = 0x77;
a[3] = '\0';
}
void putAll(int n, char c[]) {
memcpy(a, c, n);
}
char *getAll(void) {
return &a[0];
}
Run Code Online (Sandbox Code Playgroud)
测试.h
char a[4];
void putAll(int n, char[]);
char *getAll(void);
Run Code Online (Sandbox Code Playgroud)
pytest.pyx …