一般情况下,beaglebone black默认启动两个cape: 
1、BB-BONE-EMMC-2G 
2、BB-BONELT-HDMI

我们可以通过编辑uEnv.txt的文件来决定是否启动HDMI,步骤如下 
1、加载启动分区:
    mkdir /mnt/sdcard
    mount /dev/mmcblk0p1  /mnt/card
2、编辑uEnv.txt
    vim /mnt/card/uEnv.txt

文件内容如下
    ##These are needed to be compliant with Angstrom's 2013.06.20 u-boot.
    loadaddr=0x82000000
    fdtaddr=0x88000000
    rdaddr=0x88080000

initrd_high=0xffffffff
    fdt_high=0xffffffff

##These are needed to be compliant with Debian 2014-05-14 u-boot.

loadximage=load mmc 0:2 ${loadaddr} /boot/vmlinuz-${uname_r}
    loadxfdt=load mmc 0:2 ${fdtaddr} /boot/dtbs/${uname_r}/${fdtfile}
    loadxrd=load mmc 0:2 ${rdaddr} /boot/initrd.img-${uname_r}; setenv rdsize ${filesize}
    loaduEnvtxt=load mmc 0:2 ${loadaddr} /boot/uEnv.txt ; env import -t ${loadaddr} ${filesize};
    check_dtb=if test -n ${dtb}; then setenv fdtfile ${dtb};fi;
    loadall=run loaduEnvtxt; run check_dtb; run loadximage; run loadxrd; run loadxfdt;

mmcargs=setenv bootargs console=tty0 console=${console} ${optargs} ${cape_disable} ${cape_enable} root=/dev/
    mmcblk0p2 rootfstype=${mmcrootfstype} ${cmdline}

uenvcmd=run loadall; run mmcargs; bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdtaddr};

在”mmcargs=setenv…”一行插入以下语句
    optargs=quiet capemgr.disable_partno=BB-BONELT-HDMI,BB-BONELT-HDMIN
保存,退出

3、重启

4、开机查看slots已经变成了这样:

root@beaglebone:~# cat $SLOTS 
 0: 54:PF--- 
 1: 55:PF--- 
 2: 56:PF--- 
 3: 57:PF--- 
 4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
 5: ff:P-O-- Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
 6: ff:P-O-- Bone-Black-HDMIN,00A0,Texas Instrument,BB-BONELT-HDMIN

eQEP 全称Enhanced Quadrature Encoder Pulse 增强型正交编码脉冲,也具有输入的特性,设置GPIO引脚模式为eQEP1A_in或eQEP1B_in,A和B是正交编码的信号输入,或者是脉冲(A)和方向(B)的信号输入。
I是Index,也就是零位信号输入,S是Strobe,也就是锁存信号。

EQEP功能模块的输入涉及4个GPIO
AM335X的PWMSS分三个部分:
Enhanced PWM Module(ePWM);
Enhanced Capture Module(eCAP);
Enhanced Quadrature Encoder Pulse Module(eQEP).

先加载PWM功能的设备树 echo am33xx_pwm > /sys/devices/bone_capemgr.9/slots
    echo bone_eqep1 > /sys/devices/bone_capemgr.9/slots

然后加载eqep:beaglebone上sysfs条目的路径是
/sys/devices/ocp.*/{epwmss_addr}.epwmss/{eqep_addr}.eqep/
对于eqep 0,epwmss地址为48300000,eqep地址为48300180。
对于eqep 1,epwmss地址为48302000,eqep地址为48302180。
对于eqep 2,epwmss地址为48304000,eqep地址为48304180。

需要注意的是,Beaglebone上只有eQEP 1和eQEP 2可用,而Beaglebone Black上提供了所有这三个版本。这是因为在原始Beaglebone上,没有为eQEP0断开编码器时钟输入引脚之一。
如果使用eQEP 1和/或2,则必须在Beaglebone和Beaglebone Black上禁用HDMI,因为它们与LCD_数据线共享引脚。

1、测试的编码器为ROTARY增量式编码器,共4根线(vcc、GND、A相、B相);
2、选择P8_35 EQEP1A 和P8_33 EQEP1B引脚,分别作为A、B相,VCC接P9_08的sys_5v,GND接P9_02的GND;(P8_41 P8_42为EQEP2A 和P8_33 EQEP2B引脚)
3、编写程序读取position的数据即可

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h> #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, %s\n",p1.encoder1,p1.encoder2,p1.encoder3);
}
}

  

Beaglenone读取编码器数据的更多相关文章

  1. 读取编码器信息Python2.7和Python3.3版本差异及解决,一次订阅多次调用callback的解决

    1. Python3.3以字节类型返回编码器信息,b'...',BUF: b'\xc3KOO\x00OO\x00OO\x00OO\x00OO\x00\x03\x00\x00\x00\x00\x99R\ ...

  2. java的poi技术读取Excel数据到MySQL

    这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...

  3. Hive读取外表数据时跳过文件行首和行尾

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 有时候用hive读取外表数据时,比如csv这种类型的,需要跳过行首或者行尾一些和数据无关的或者自 ...

  4. 读取数据库数据,并将数据整合成3D饼图在jsp中显示

    首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) import java.io.IOException; import java.sql. ...

  5. .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序

    解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...

  6. oledbdataadapter 读取excel数据时,有的单元格内容不能读出

    表现:excel中某列中,有的单元格左上角有绿色箭头标志,有的没有,c#编写读取程序,但是只能读取出带绿色箭头的单元格中的内容,其余不带的读取不到内容 原因:excel中单元格因为是文本格式而存储了数 ...

  7. wcf序列化大对象时报错:读取 XML 数据时,超出最大

    错误为: 访问服务异常:格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出 错: request.InnerException 消息是“反序 ...

  8. Openxml入门---Openxm读取Excel数据

    Openxml读取Excel数据: 有些问题,如果当Cell 里面是 日期和浮点型的话,对应的Cell.DataType==Null,对应的时间会转换为一个浮点型,对于这块可以通过DateTime.F ...

  9. NPOI操作excel之读取excel数据

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.  一.下载引用 去NPOI官网http://npoi.codeplex. ...

随机推荐

  1. [原]CentOS 7 chrony 笔记

    ~]# timedatectl status Local -- :: CST ==> 本地系统实际时间,设置时间timedatectl set-:: 设置日期timedatectl set- 设 ...

  2. keras入门

    自己要搞深度学习,正好手上有本keras之父写的深度学习书,于是就从keras入手吧.看了一个电影的二分类问题,确实很简单,可以熟悉深度学习的流程.首先熟悉了结果keras的模块,如model,Seq ...

  3. Vue中axios踩坑之路-POST传参

    https://blog.csdn.net/call_me_fly/article/details/79012581

  4. hibernate08--OpenSessionInView

    创建一个web项目,然后生成HibernateSessionFactory文件! package cn.bdqn.util; import org.hibernate.HibernateExcepti ...

  5. windows 安装 Apache、php、mysql及其配置(转载)

    此文包括的注意内容:软件版本及下载地址Apache2.4的配置和安装php7.0的配置mysql5.5的安装常见问题及解决方法1.软件版本Windows server 2008 r2+ 64位Apac ...

  6. c++课设

    #include <stdio.h>#include <time.h>#include <math.h>#define C 60000;struct Student ...

  7. 怎么将APE转MP3,APE转MP3的方法

    怎样实现APE转MP3的问题呢?很多时候我们从网上所下载的音乐格式,可能并不是我们所需要的音乐格式.如APE音乐格式,那么当我们下载了自己并不需要的APE音乐格式我们应该如何将其转换为自己需要的MP3 ...

  8. tcpdf开发文档(中文翻译版)

    2017年5月3日15:06:15 这个是英文翻译版,我看过作者的文档其实不太友善或者不方便阅读,不如wiki方便 后面补充一些,结构性文档翻译 这是一部官方网站文档,剩余大部分都是开发的时候和网络总 ...

  9. 解决url传中文参数问题

    项目中要做一个表格导出功能,用的是location.url传值给后台导出表格数据.由于传中文会出现乱码现象.故需要给参数转码,具体如下: 对于url要传的中文参数进行两次编码(注意是两次),即enco ...

  10. Codeforces 607A - Chain Reaction - [DP+二分]

    题目链接:https://codeforces.com/problemset/problem/607/A 题意: 有 $n$ 个塔排成一行,第 $i$ 个激光塔的位置为 $a_i$,伤害范围是 $b_ ...