完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 1357292160 于 2017-11-8 11:31 编辑
大家好,最近在调试BBB如何读取编码器,出现了点问题,希望高手能帮忙解决下,以下是我测试的步骤。1、测试的编码器为ROTARY增量式编码器,共4根线(vcc、GND、A相、B相); 2、通过图一给的引脚定义,我选择P8_41和P8_42引脚,分别作为A、B相,VCC接P9_08的sys_5v,GND接P9_02的DGND; 3、连接板后加载设备树,如图二,由于不知道对于哪个eqep,所以把三个都加载上,并在程序里也把三个都读取并显示出来; 4、编写的程序如下: #include #include #include #include #define ENCODERDATA "/sys/devices/ocp.3/48300000.epwmss/48300180.eqep/" #define ENCODERDATA1 "/sys/devices/ocp.3/48302000.epwmss/48302180.eqep/"#define ENCODERDATA2 "/sys/devices/ocp.3/48304000.epwmss/48304180.eqep/" #define MAX_LINE 100 struct encoderdata{ char encoder1[MAX_LINE]; char encoder2[MAX_LINE]; char encoder3[MAX_LINE]; }; main(int argc, char **argv) { struct encoderdata p1; FILE *stream = NULL; FILE *stream1 = NULL; FILE *stream2 = NULL; while(1) { stream = fopen(ENCODERDATA"position","r+"); if(!stream){ printf("file error n"); return ;} stream1 = fopen(ENCODERDATA1"position","r+"); if(!stream1){ printf("file error1 n"); return ;} stream2 = fopen(ENCODERDATA2"position","r+"); if(!stream2){ printf("file error2 n"); return ;} fgets(p1.encoder1, MAX_LINE, stream); fgets(p1.encoder2, MAX_LINE, stream1); fgets(p1.encoder3, MAX_LINE, stream2); fclose(stream); fclose(stream1); fclose(stream2); usleep(100000); printf("nThe current encoder data is: %s, %s, %sn",p1.encoder1,p1.encoder2,p1.encoder3); } } 5、但是在执行时,读不到编码器数据,如图三。 求高手指教! |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
165个成员聚集在这个小组
加入小组BBB通过sd卡启动ubuntu16.04后不能升级下载联网的问题
4417 浏览 2 评论
3184 浏览 0 评论
7508 浏览 5 评论
340浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 03:52 , Processed in 0.567046 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号