完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
LED是对GPIO操作的基本功能。其操作方式也是有多种的,例如在终端中使用echo命令、通过源文件对应数据手册操作寄存器,使用第三方库(python)等等,但是当打工米尔的例程时,会发现看似使用用源文件的形式,其实是使用echo的方式,使用system函数执行shell 命令。 system()会调用fork()产生子进程,由子进程来调用/bin/sh-cstring来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。 定义函数 intsystem(const char * string); 返回值 =-1:出现错误 =0:调用成功但是没有出现子进程 >0:成功退出的子进程的id 如果system()在调用/bin/sh时失败则返回127,其他失败原因返回-1。若参数string为空指针(NULL),则返回非零值>。 如果system()调用成功则最后会返回执行shell命令后的返回值,但是此返回值也有可能为 system()调用/bin/sh失败所返回的127,因此最好能再检查errno来确认执行成功。 附加说明 在编写具有SUID/SGID权限的程序时请勿使用system(),system()会继承环境变量,通过环境变量可能会造成系统安全的问题。 先列出LED的例程:
上面程序去掉了按键的部分。从程序中可以看到,将三个LED的设置在leds数据中,当对于某一LED进行操作时,使用sprintf函数将具体的参数与leds中的设备进行组合,生成不同的操作命令,这个操作命令存储在cmd字符串数组中,再使用system函数去支持这个操作命令。以达到操作LED上的GPIO的目的。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
【米尔NXP i.MX 93开发板试用评测】02.使用QT开发推流器
434 浏览 0 评论
国产芯上运行TinyMaxi轻量级的神经网络推理库-米尔基于芯驰D9国产商显板
183 浏览 0 评论
【米尔-全志T527开发板评测试用】开发板上电与连接WIFI
877 浏览 0 评论
900 浏览 0 评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】EtherCAT移植
1079 浏览 0 评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】基于ROS系统的三麦轮小车自主导航
3061浏览 2评论
【米尔-瑞米派兼容树莓派扩展模块-试用体验】Free RTOS应用开发环境部署
855浏览 1评论
【米尔-芯驰D9开发板- 国产平台试用】- 03- 外设接口测试-U盘、485总线
6681浏览 1评论
【米尔MYD-J1028X开发板试用体验】搭建VNC图形界面环境
19426浏览 1评论
【米尔MYD-JX8MMA7开发板-ARM+FPGA架构试用体验】快速入门
2138浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-19 23:47 , Processed in 0.539306 second(s), Total 60, Slave 47 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号