X3MD WiringPi无法正常使用

用户您好,请详细描述您所遇到的问题:

  1. 系统软件版本:2.0.0
  2. 问题涉及的技术领域: 硬件
  3. 问题描述:通过WiringPi控制GPIO进行闪烁、硬PWM等均无法正常运行
  4. 复现概率:必现

运行步骤:-
根据WiringPi: 在旭日X3派上移植的 WiringPi 。
问题一:gpio readall显示为X3 SDB而非X3 PI 或 X3 MD

问题二:shell命令无法使用-

①:GPIO测试:LED正极接到物理37引脚(BCM码:26)-
sudo gpio mode 26 out-
sudo gpio write 26 on(LED无反应)

②PWM测试:LED正极接到物理32引脚(BCM码:12)

LED无任何反应(硬件问题已经排除,用app/40pin_samples/simple_pwm.py测试LED可以正常闪烁。就是shell命令的问题)

问题三:C代码硬PWM无法正常运行-
①运行gitee上代码历程:-

编译:/usr/bin/g++ -fdiagnostics-color=always -g ./pwmtest.c -o ./pwmtest -lwiringPi -lpthread可以运行-

②:修改为硬PWM无法运行

#include <stdio.h>#include <wiringPi.h>#define PWM_1     25Uint main (void){    wiringPiSetupGpio () ;    pinMode(PWM_1, PWM_OUTPUT);    while(1)     {        for(int bright = 0 ; bright < 1000; bright++)         {            pwmWrite(PWM_1, bright);            delay(1) ;        }        for(int bright = 1000; bright >= 0; bright--)         {            pwmWrite(PWM_1, bright);            delay(1) ;        }    }    return 0 ;}

编译:/usr/bin/g++ -fdiagnostics-color=always -g ./pwmtest.c -o ./pwmtest -lwiringPi -lpthread

报错:Segmentation fault然后自动退出程序,但是LED却常量且不会发生亮度变化-

③:继续修改硬件PWM代码:-

#include <stdio.h>#include <wiringPi.h>int PWM_1 = 12;                    // BCM code 12int main (void){    wiringPiSetupGpio();    pinMode(PWM_1, PWM_OUTPUT);    pwmSetRange(100);    pwmSetClock(75);    while(1)    {        for(int bright = 0 ; bright < 100; bright++)        {            pwmWrite(PWM_1, bright);            delay(2) ;        }        for(int bright = 100; bright >= 0; bright--)        {            pwmWrite(PWM_1, bright);            delay(2) ;        }    }    return 0 ;}

此处不再使用物理引脚编号,使用的是BCM码编号,故编译时命令取消-g-
/usr/bin/g++ -fdiagnostics-color=always ./pwmtest.c -o ./pwmtest -lwiringPi -lpthread

依然无法正常运行,gdb调试结果为:-

其实屏蔽掉pwmSetRange和SetClock后,gdb调试过程中pwmWrite(PWM_1, bright)也会报错-

此外也有多次重装wiringPi均无果:-
进入WiringPi运行./build uninstall其实卸载的不干净-
我卸载的方法为:-
sudo rm -rf /usr/lib/libwiring*

sudo rm -rf /usr/local/include/wiring*

sudo unlink /usr/local/bin/gpio

sudo ldconfig

你好,X3 SDB是最初版本,不影响使用效果,module版本正在更新中,gpio做了调整,需要稍等一段时间做适配