迅为imx6ull开发板使用c语言调用shell命令控制led灯

发布时间:2021-10-8 11:39    发布者:落风
关键词: IMX6ULL开发板
用命令来控制 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 秒,然后保存,如下图所示。
1.jpg
打开 ubuntu,进到 samba 指定的这个路径下,我们就可以在 samba 这个路径看到 .c 文件了,如下图所示。
2.jpg
然后我们把 .c 文件从 samba 指定的目录把它考到 ubuntu 的目录下,然后我们进到这个目录,如下图所示。
3.jpg
我们直接使用交叉编译器编译下 led.c ,因为是在开发板上运行的,所以就不能使用 gcc 了。我们使用静态编译,这样就得到了 led 这个可执行的程序。如下图所示。
4.jpg
把这个可执行文件拷贝到开发板,我们可以使用 U 盘或者 TF 卡也可以使用 NFS ,这个依据自己的习惯来就可以了,我这里使用 nfs 。进到开发板的控制终端,然后给开发板连下网,我先配置下无线密码,然后联网,因为我这里要使用 nfs, 然后我们来挂载下这个目录,然后我们把 led 这个可执行文件拷贝到 nfs共享的目录,这样就可以在开发板上看到 led 这个可执行文件了,我这里给他拷贝到开发板上,进到 opt 这个目录下,如下图所示。
5.jpg
s 看一下,如下图所示。
6.jpg
我们来运行下这个可执行文件,如下图所示。
7.jpg
可以看到开发板现在 led2 这个灯的状态,来执行下这个可执行文件,这个灯就是一闪一闪的了,如下图所示。
8.jpg
使用 ctrl+c 打断这个程序的运行,这个灯现在已经不亮了,如下图所示。
9.jpg
然后我们在运行下,这样我们就使用程序成功控制了一个灯并实现了一个闪灯的程序,其实这个程序里面的方法和我们直接使用命令的方法是一样的,只不过我们是使用 c 语言来调用我们的 shell 命令来实现,就不用再人为的输入了。
在 led 设备的这个目录下,还有一个叫 beep 的蜂鸣器设备,蜂鸣器我们也可以使用这个方法来打开和关闭蜂鸣器,这就作为一个作业大家自己来试下,方法和点亮一个 led 灯方法是一样的,我们可以先用命令来试下,然后再用 system 调用 shell 命令用程序实现。

本文地址:https://www.eechina.com/thread-775706-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 基于CEC1712实现的处理器SPI FLASH固件安全弹性方案培训教程
  • 无线充电基础知识及应用培训教程2
  • 想要避免发生灾难,就用MPLAB® SiC电源仿真器!
  • 5分钟详解定时器/计数器E和波形扩展!
  • 贸泽电子(Mouser)专区
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表