首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启动时PIGPIO失败,程序重新启动时工作

启动时PIGPIO失败,程序重新启动时工作
EN

Stack Overflow用户
提问于 2022-05-16 12:07:05
回答 1查看 218关注 0票数 0

我使用pigpiod_if2.h读取Raspberry 4B上运行Buildroot发行版的屏蔽版本,因为我需要多个C程序同时与GPIO交互-初始化使用pigpio_start,但在启动时返回错误代码-2003。

代码语言:javascript
复制
initGPIO = pigpio_start(NULL, NULL); // Initialise pigpio
    if (initGPIO >= 0) {
        printf("Initialised GPIO for HWConfig [pigpio]\n"); 
    } 
    else { 
        printf("Failed to initialise GPIO for HWConfig [pigpio]\n");
        printf("PIGPIO error code: %d\n", initGPIO);
    }

根据文档(据我所知) -2000在某种程度上引用了pigpiod头,尽管没有详细信息:

代码语言:javascript
复制
#define PI_PIGIF_ERR_0       -2000

-3指的是不正确的GPIO引脚号:

代码语言:javascript
复制
#define PI_BAD_GPIO          -3 // GPIO not 0-53

但是,我认为这个错误可能是一个红鱼,因为当进程被重新启动时(没有重新启动机器),它工作得很好,成功的实例化消息和正确的硬件读取版本。

我将非常感谢故障排除帮助,试图找出这个问题的根本原因。到目前为止,我已经包含了一个脚本,它可以在这个程序之前检查pigpio是否正在运行(它是),并且在这个程序之前删除了对pigpio的所有引用,除了pigpio守护进程检查。

谢谢你,H

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-06 15:55:06

事实证明,此问题与PIGPIO初始化在引导序列中的位置有关。我在Buildrootinit.d/etc引导目录中使用脚本号S30-S39初始化所需的外围设备。将脚本编号移到S60-S69解决了这个问题(HWConfig和其他外围设备)。按预期工作)。

虽然我还不清楚到底是什么导致了故障,但我的工作理论是,在启动序列中,所需的驱动程序还没有初始化(比如我从PIGPIO中使用的SPI代码,它从在OLED上显示随机字符到按预期运行)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72258957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档