zoukankan      html  css  js  c++  java
  • 迅为imx6ull开发板使用c语言调用shell命令控制led灯

    用命令来控制 led 灯没有感觉,那可以使用程序来控制,让程序帮我们输入这些命令,我们可以使用system 函数来完成。
    头文件:#include
    格式:system(要执行的命令)
    代码实现:
    #include
    void main(void)
    {
    system(“echo none > /sys/class/leds/sys-led/trigger”);//设置触发方式
    while(1)
    {
    system(“echo 1 > /sys/class/leds/sys-led/brightness”);//点亮 led2
    sleep(5);
    system(“echo 0 > /sys/class/leds/sys-led/brightness”);//关闭 led2
    sleep(5);
    }
    }
    我们来写一下这个程序,我们进到 samba 指定的这个路径下,我们在这个路径下创建 c 程序,名为 led.c,然后用 source insight 打开这个文件,因为这个程序非常简单,我直接复制程序,我们在进入 while 循环之前先设置了下 led 触发方式,把它设置成没有触发,这个就有点类似于 32 单片机上对管脚的初始化,也就是我们先初始化一下管脚,我们再进行管脚的操作,然后我们进入到 while 循环,我们不断的给 led2 进行置 0 置 1 ,我们把这个延迟改小一点,改成 1 秒,然后保存,如下图所示。

    打开 ubuntu,进到 samba 指定的这个路径下,我们就可以在 samba 这个路径看到 .c 文件了,如下图所示。

    然后我们把 .c 文件从 samba 指定的目录把它考到 ubuntu 的目录下,然后我们进到这个目录,如下图所示。

    我们直接使用交叉编译器编译下 led.c ,因为是在开发板上运行的,所以就不能使用 gcc 了。我们使用静态编译,这样就得到了 led 这个可执行的程序。如下图所示。

    把这个可执行文件拷贝到开发板,我们可以使用 U 盘或者 TF 卡也可以使用 NFS ,这个依据自己的习惯来就可以了,我这里使用 nfs 。进到开发板的控制终端,然后给开发板连下网,我先配置下无线密码,然后联网,因为我这里要使用 nfs, 然后我们来挂载下这个目录,然后我们把 led 这个可执行文件拷贝到 nfs共享的目录,这样就可以在开发板上看到 led 这个可执行文件了,我这里给他拷贝到开发板上,进到 opt 这个目录下,如下图所示。

    s 看一下,如下图所示。

    我们来运行下这个可执行文件,如下图所示。

    可以看到开发板现在 led2 这个灯的状态,来执行下这个可执行文件,这个灯就是一闪一闪的了,如下图所示。

    使用 ctrl+c 打断这个程序的运行,这个灯现在已经不亮了,如下图所示。

    然后我们在运行下,这样我们就使用程序成功控制了一个灯并实现了一个闪灯的程序,其实这个程序里面的方法和我们直接使用命令的方法是一样的,只不过我们是使用 c 语言来调用我们的 shell 命令来实现,就不用再人为的输入了。
    在 led 设备的这个目录下,还有一个叫 beep 的蜂鸣器设备,蜂鸣器我们也可以使用这个方法来打开和关闭蜂鸣器,这就作为一个作业大家自己来试下,方法和点亮一个 led 灯方法是一样的,我们可以先用命令来试下,然后再用 system 调用 shell 命令用程序实现。

  • 相关阅读:
    Memcached简介
    TP5 volist
    Getting command line access to PHP and MySQL running MAMP on OSX
    PHP use
    PHP 命名空间(namespace)
    mac 使用 pf 做端口转发
    微信测试帐号如何设置URL和Token,以及相关验证的原理
    ionic开发笔记
    Eclipse下配置Maven
    css引用第三方字体库
  • 原文地址:https://www.cnblogs.com/liyue3/p/15379030.html
Copyright © 2011-2022 走看看