我的项目是在我的 Raspberry B2 上使用 ST7565 控制器控制 LCD 我正在尝试使用此 C++ 代码来控制 LCD: https ://github.com/stephanel/ST7565-RPi
不幸的是,我不熟悉 C 编程,因此我想用 ctypes 从 python 调用 c++ 函数。
我写了一个简单的(对我来说很简单)c++ 代码用作共享库
液晶控制.cpp:
#include <iostream>
#include <ctime>
#include <sstream>
#include <wiringPi.h>
#include <wiringShift.h>
#include "ST7565/ST7565.cpp"
using namespace std;
ST7565 glcd(PIN_SID, PIN_SCLK, PIN_A0, PIN_RST, PIN_CS);
void start();
void drawclock();
void setpix();
void clear();
void drawstring();
void drawbitmap();
void start(){
glcd.begin(0x18);
glcd.display();}
void setpix() {
glcd.setpixel(10, 10, BLACK);}
void clear() {
glcd.clear();}
void drawstring() {
glcd.drawstring(0, 0, "Test string");}
我用于测试的python代码:
#!/usr/bin/python
import os
from ctypes import *
from thread import start_new_thread
lcd_lib = cdll.LoadLibrary("lcdcontrol.so")
mylcd = lcd_lib
mylcd.start()
现在我必须将我的 c++ 代码编译为共享库。我尝试了几种方法。但没有什么是没有问题的。当我运行python代码时,它返回它找不到“digitalwrite”函数,它是wiringpi lib的一部分,或者我得到一个错误,它找不到“start”函数。
任何人都可以帮助我。我对此感到疯狂......也许有一种完全不同的方式可以使用 python 中的 ST7565 c++ 代码。但这对我来说似乎是最简单的方法......直到现在......