问题标签 [wiringpi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
220 浏览

c - C 接线Pi 等到功能完成

我不是C开发人员,但我需要编写简单的程序,但我遇到了延迟问题。这是我的程序:

它工作得很好,直到我删除延迟行 (200)。在程序完成之前,我如何才能等到函数 softPwmWrite 完成而不延迟() ?我正在使用LinuxWiringPi库。谢谢。

0 投票
1 回答
658 浏览

linux - 什么是wire.requestFrom(...)的wiringPi等价物

我正在翻译一个 arduino I2C 库以在树莓派上运行,我需要知道如何运行wire.requestFrom(address, size);. 我也许可以自己实现它,但我需要知道它的作用。在树莓派上实现这一目标的最简单方法是什么?

我正在翻译的图书馆可以在这里找到。




感谢您的帮助!

0 投票
0 回答
766 浏览

c++ - Crosstool-ng 和动态库

如何将自定义动态库(在我的情况下为 wiringPi)与使用 crosstool-ng 创建的 ARMv6 C++ 编译器一起使用?我构建了wiringPi,然后将-lwiringPi 添加到链接器选项中,使用g++ 可以正常工作,但在使用新的ARMv6 C++ 编译器时不能正常工作。

错误是:ld: cannot find -lwiringPi

鉴于交叉工具编译器似乎有自己的结构,也许我必须在 ARMv6 C++ 编译器文件中的某处构建库?

0 投票
1 回答
1967 浏览

python - 来自python中int数组的无符号字符数组

我尝试使用WiringPi 在树莓派上的2004 液晶显示器上定义一个新字符(大写的德语变音符号“Ä”)lcdCharDef()

这是我的代码

当我运行此代码时,我收到以下错误:

TypeError:在方法“lcdCharDef”中,类型为“unsigned char [8]”的参数 3

我希望这些intsunsigned chars

[编辑]
在代码的不同部分中,我ord(char)仅将一个字符转换为无符号整数。这可以导致正确的分析器吗?

如何将数组转换/转换为可以接受的类型?

PS(请注意(据我所知)pythonwiringPi库只是简单地包装了wiringPi的C函数)

[编辑]
我在 github 上打开了一个问题:https ://github.com/WiringPi/WiringPi2-Python/issues/20

0 投票
0 回答
1597 浏览

c++ - QThread 接线Pi GPIO

我将 RaspberryPi 和 Qt 用于我读过的嵌入式项目的 Qt QThread。我测试过QThread,它工作得很好。我想在我的线程中控制一些 GPIO 引脚,但这不起作用我的 GPIO 引脚正在工作,我已经测试过了。

这是我的代码:

这是在 MainWindow.cpp

wiringPiSetup已经在我的 MainThread 中执行了。

0 投票
2 回答
1818 浏览

raspberry-pi - 使用 WiringPi 在 Arduino Uno 和 Raspberry Pi 之间进行 SPI 通信

我一直在尝试实现 Raspberry Pi 2 B+(主)与 Arduino Uno Rev3(从)之间的 SPI 通信,但没有成功。

我使用了教程: http: //mitchtech.net/raspberry-pi-arduino-spi/

但是,那里提供的代码无法正常工作。我已经在整个互联网上搜索解决方案,但我找不到。我在网站上对 arduino 使用相同的代码,但我对树莓派使用以下代码:

这段代码只会给我返回垃圾。我不知道该怎么做。

0 投票
0 回答
280 浏览

java - 服务未在带 LCD 模块的 Raspbian Linux Raspberry Pi 2 型号 B 上启动

我有安装了 Raspbian Linux 的 Raspberry Pi 2 型号 B。我必须创建并启动在 LCD 模块 SC1602a 上打印文本的 linux 服务。它看起来像这样:

[ 这个]

我使用 Java 语言 1.8_x86 、Apache Commons Daemon 和 jsvc 创建我的守护程序服务。我还使用pi4j 项目(这是 WiringPi 的包装器)来管理 Raspberry Pi 引脚。Java类:

我使用 maven 来打包我的工件。我使用 WinScp 将工件移动到 Raspberry Pi。当我从命令行启动此应用程序时,java -jar application.jar它运行良好。应用程序打印到 LCD 模块“hello”字符串。接下来,我尝试像 linux 服务一样启动我的应用程序。我在 Raspberry Pi 上安装了 jsvc,创建了脚本lcd并将其移至文件夹 /etc/init.d/ 。我也是chmod +x lcd从文件夹 /etc/init.d 中写的。这是我的脚本:

我写命令service lcd start。这种方式行不通。在这种情况下,应用程序不会在 LCD 模块上打印任何信息。我打开日志文件并找到下一个信息:

液晶输出:

2015-08-20 12:59:09.934 [INFO] - 初始化方法...

液晶显示器错误:

接线PiSetup:无法打开/dev/mem:不允许操作服务退出,返回值为1

如您所见,尝试加载 pi4j 驱动程序时应用程序失败。我尝试扩展 dev/mem 文件的访问规则,我做到了,文件有rwxrwxrwx但服务仍然无法正常工作。

init()我也从方法中关闭了 LCD 初始化。服务启动良好,因此无需 LCD 服务也能正常运行。

有人知道解决方案吗?非常感谢

0 投票
2 回答
5795 浏览

linux - 对GPIO的wiringPi非root访问

这里我虽然可以使用非root用户访问GPIO,wiringPiSetupSys()但我没有尝试过。

实际上,如果我对可执行文件执行 setuid,那么它就可以工作。那么,wiringPiSetupSys()还不够吗?

0 投票
1 回答
61 浏览

linux - system() 调用的 WiringPi gpio 必须使用另一个进程吗?

据此我在程序内部使用 system() ( QProcess ) 函数来调用 gpio 程序。

有用。但我注意到我需要运行我的应用程序两次,实际上它只在第二次运行。正如这里所指出的,对 gpio 的调用似乎必须在另一个进程中完成。

是否应该使用QProcess::setupChildProcess()来解决这个问题?

我扩展了 QProcess 覆盖 setupChildProcess ,然后在我的应用程序的构造函数中实例化了 SandboxProcess 。不幸的是,这没有奏效。

0 投票
1 回答
949 浏览

c++ - 如何使用字符输入停止循环而不暂停循环

再会,

我正在尝试创建一个程序,该程序从传感器获取方向数据,然后在 PID 控制算法中使用该数据来创建相应的 PWM 信号。我希望能够通过按 Enter 来停止程序。我尝试使用 opencv 的 waitKey(); 但是它不接受我的键盘输入。我也试过 cin.get(); 但它暂停了我的循环,这会产生问题。一旦四轴飞行器改变方向,我的 pwm 就不会刷新。我尝试研究其他方法,但我无法让它们起作用。这是我使用上述两种方法的代码示例。

使用 cin.get():

使用 waitKey();