[嵌入式linux] 用命令来控制 led 灯没有感觉,那可以使用程序来控制,让...

[复制链接]
2619|1
手机看帖
扫描二维码
随时随地手机跟帖
linzhao789|  楼主 | 2021-10-8 11:47 | 显示全部楼层 |阅读模式
用命令来控制 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 秒,然后保存,如下图所示。
113656f9o4e24oh6z6xb27.jpg
打开 ubuntu,进到 samba 指定的这个路径下,我们就可以在 samba 这个路径看到 .c 文件了,如下图所示。
113656ar242gw2r4gw23rw.jpg
然后我们把 .c 文件从 samba 指定的目录把它考到 ubuntu 的目录下,然后我们进到这个目录,如下图所示。
113656ksi88aj124k88z4v.jpg
我们直接使用交叉编译器编译下 led.c ,因为是在开发板上运行的,所以就不能使用 gcc 了。我们使用静态编译,这样就得到了 led 这个可执行的程序。如下图所示。
113656a1km3mt5kt3935mt.jpg
把这个可执行文件拷贝到开发板,我们可以使用 U 盘或者 TF 卡也可以使用 NFS ,这个依据自己的习惯来就可以了,我这里使用 nfs 。进到开发板的控制终端,然后给开发板连下网,我先配置下无线密码,然后联网,因为我这里要使用 nfs, 然后我们来挂载下这个目录,然后我们把 led 这个可执行文件拷贝到 nfs共享的目录,这样就可以在开发板上看到 led 这个可执行文件了,我这里给他拷贝到开发板上,进到 opt 这个目录下,如下图所示。
113656tqhkw2k2wrwjhqwk.jpg
s 看一下,如下图所示。
113656llvl4kkkkpnov9qz.jpg
我们来运行下这个可执行文件,如下图所示。
113656lp30p60rey6v2yvz.jpg
可以看到开发板现在 led2 这个灯的状态,来执行下这个可执行文件,这个灯就是一闪一闪的了,如下图所示。
113656mzc8whuhecwrzrho.jpg
使用 ctrl+c 打断这个程序的运行,这个灯现在已经不亮了,如下图所示。
113656vj7oz47eri4jm06r.jpg
然后我们在运行下,这样我们就使用程序成功控制了一个灯并实现了一个闪灯的程序,其实这个程序里面的方法和我们直接使用命令的方法是一样的,只不过我们是使用 c 语言来调用我们的 shell 命令来实现,就不用再人为的输入了。
在 led 设备的这个目录下,还有一个叫 beep 的蜂鸣器设备,蜂鸣器我们也可以使用这个方法来打开和关闭蜂鸣器,这就作为一个作业大家自己来试下,方法和点亮一个 led 灯方法是一样的,我们可以先用命令来试下,然后再用 system 调用 shell 命令用程序实现。

使用特权

评论回复

相关帖子

flytianya2010| | 2021-10-8 14:08 | 显示全部楼层
还可以这么操作,学习了。

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 呐咯密密 得到打赏 ¥310.00
  • 2 qbwww 得到打赏 ¥265.00
  • 3 yanzhengxin1 得到打赏 ¥200.00
  • 4 full_stack 得到打赏 ¥100.00
  • 5 laocuo1142 得到打赏 ¥55.00
  • 6 二哲科技 得到打赏 ¥50.00
  • 7 zhangjiantao 得到打赏 ¥50.00
  • 8 改名了 得到打赏 ¥50.00
  • 9 小叶三千 得到打赏 ¥50.00
  • 10 cjseng 得到打赏 ¥50.00
在线客服 快速回复 返回顶部 返回列表