ctypes使用

it2022-05-05  126

ctypes是python下的一个可以链接c/c++的一个库。

可以将C函数编译成动态链接库, 即window下的.dll文件或者是linux下的.so文件.

可以调用c/c++,做一些python不能做的事情。例如对硬件操作,快速计算,操作内存。

对串口操作:

import platform from ctypes import * if platform.system() == 'Windows': libc = cdll.LoadLibrary('uart.dll') elif platform.system() =='Linux': libc = cdll.LoadLibrary('uart.so') libc.printf('简单!\n')

调用c语言操作设备:

定义c库

#include <stdio.h> #include "device_deader.h" int i2c_init(void) { return true; } int i2c_read(char addr, char length) { } int i2c_write(char addr, char length) { }

在linux环境下编译为动态链接库:gcc i2c.c -fPIC -shared -o i2c.so

现在就可以通过ctypes调用

from ctypes import * #i2c_device = CDLL("./i2c.so") i2c_device = ctypes.cdll.LoadLibrary("./i2c.so") result = i2c_device.i2c_init() read = i2c_device.i2c_read(0x10,1) result = i2c_device.i2c_write(0x10,1)

 


最新回复(0)