ctypes使用

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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值