版主: wanchong , wangyu , eepwwp , firedom |
abgh668
最后登陆时间:2015-10-09 14:01:16 |
在Eclipse 编写能让Edison / Galileo 运行的linux程序,大部分应用需要对引脚进行操作,
intel已经给我们提供了一个对引脚读写的类库,使用的时候需添加#include "mraa/gpio.h"类库
下面开始介绍mraa/gpio.h类库包含的函数 mraa_gpio_context mraa_gpio_init ( int pin) 描述 获取板卡中引脚号的实际地址 参数 pin:板卡引脚号 返回值 对应地址或者NULL 用法 mraa_gpio_contextgpio; //创建mraa_gpio_context结构体变量gpio gpio= mraa_gpio_init(13); //把引脚13的实际地址写入gpio mraa_result_t mraa_gpio_dir (mraa_gpio_context dev , gpio_dir_t dir) 描述 设置引脚模式 (输入或者输出) 参数 dev:板卡引脚变量 dir:硬件模式 MRAA_GPIO_IN(输入) MRAA_GPIO_OUT(输出) 返回值 操作结果 用法 mraa_gpio_contextgpio; //创建mraa_gpio_context结构体变量gpio gpio= mraa_gpio_init(13); mraa_gpio_dir(gpio,MRAA_GPIO_IN); //设置13引脚为输入模式 mraa_result_t mraa_gpio_mode (mraa_gpio_context dev , gpio_mode_t mode ) 描述 设置引脚是否接入内部电阻 (上拉或下拉引脚) 参数 dev:板卡引脚变量 mode:模式 MRAA_GPIO_STRONG(正常模式) MRAA_GPIO_PULLUP(上拉引脚) MRAA_GPIO_PULLDOWN(下拉引脚) 返回值 操作结果 用法 mraa_gpio_contextgpio; //创建mraa_gpio_context结构体变量gpio gpio= mraa_gpio_init(13); mraa_gpio_mode(gpio,MRAA_GPIO_PULLUP);//上拉13引脚 mraa_result_t mraa_gpio_close (mraa_gpio_context dev) 描述 取消以前结构体变量赋予的引脚地址 参数 dev结构体变量 返回值 操作结果 用法 mraa_gpio_contextgpio; //创建mraa_gpio_context结构体变量gpio gpio= mraa_gpio_init(13); //把引脚13的实际地址写入gpio mraa_gpio_close(gpio); int mraa_gpio_read (mraa_gpio_context dev) 描述 读取引脚状态 参数 dev对应引脚变量 返回值 读取的状态 用法 mraa_gpio_contextgpio; //创建mraa_gpio_context结构体变量gpio gpio= mraa_gpio_init(13); //把引脚13的实际地址写入gpio mraa_gpio_read(gpio);//读取13号引脚状态 mraa_result_t mraa_gpio_write (mraa_gpio_context dev , int value) 描述 写引脚状态 参数 dev对应引脚变量 value引脚状态 返回值 操作结果 用法 mraa_gpio_contextgpio; //创建mraa_gpio_context结构体变量gpio gpio= mraa_gpio_init(13); //把引脚13的实际地址写入gpio mraa_gpio_write(gpio,1);//13号引脚设置高电平 mraa_result_t mraa_gpio_use_mmaped(mraa_gpio_contextdev , mraa_boolean_t mmap) 描述 用内存映射mapp代替sysfs 参数 dev对应引脚变量 mmap开启或关闭 1 or 0 返回值 操作结果 重点介绍中断函数 mraa_result_t mraa_gpio_isr( mraa_gpio_context dev , gpio_edge_t dev, void(*)(void *) fptr , void * args) 描述 设置外部中断 参数 dev对应引脚变量 edge 触发模式 MRAA_GPIO_EDGE_NONE(没有中断) MRAA_GPIO_EDGE_BOTH(引脚改变) MRAA_GPIO_EDGE_RISING(上升沿) MRAA_GPIO_EDGE_FALLING(下降沿) fptr 中断时运行的函数 args 传递参数到中断处理程序(fptr) ,不用传递填入NULL 返回值 操作结果 中断程序示例
[C] 纯文本查看 复制代码
mraa_result_tmraa_gpio_isr_exit(mraa_gpio_context dev) 描述 取消对应引脚中断 参数 dev对应引脚变量 返回值 操作结果
Gpio类库的介绍就到这里,本帖代与解释全部原创,已全部在Eclipse 编译 Edison运行通过
关键词:Edison Gallileo Eclipse |
||
此帖由abgh668于2015-01-28 10:47:47最后编辑
|
|||
609080
最后登陆时间:2015-12-24 14:39:34 |
马一个,等楼主更
|
qqqqqqaaaaaa
最后登陆时间:2015-01-14 10:40:27 |
好棒!
|
zhangxiaoming
最后登陆时间:2015-01-14 10:40:28 |
真的是很好的帖子~顶
|
1feiyangyyyqqw
最后登陆时间:2015-01-14 10:40:32 |
顶一个
|
11234908
最后登陆时间:2015-01-14 10:40:37 |
赞赞,学习了。
|
adamaa
最后登陆时间:2015-01-14 10:40:44 |
赞
|
haorenxinshou
最后登陆时间:2015-01-14 10:40:45 |
谢谢楼主的经验分享
|
yunhuayu
最后登陆时间:2015-01-14 10:40:49 |
楼主,能否请教几个问题啊
|
kicker1
最后登陆时间:2015-12-24 14:36:12 |
好帖 , 楼主辛苦了, 大二了 荒废的时间太多了,决定过几天就买个开发版回家自学
|