I.MX6 Android Linux shell MMPF0100 i2c 获取数据

#!/system/bin/busybox ash

#
#          I.MX6 Android Linux shell MMPF0100 i2c 获取数据
# 说明:
#     本文主要记录通过shell脚本来获取MMPF0100的数据,更多的是为了更为
# 方便的获取到数据,在进行一些调试的时候能够更有效。
#
#                                     2016-4-1 深圳 南山平山村 曾剑锋
#

# 检查参数个数
if [ $# -lt 3 ]; then
    echo "USAGE:"
    echo "    i2cData.sh <curPage> <firstAddress(hex)> <byteCount(hex)>"
    exit 1
fi

curPage=$1              # 从第几页开始获取
byteCount=$(($3))       # 一次获取多少个字节
firstAddress=$(($2))    # 获取字节的首地址

i2cBusNumber=1          # 采用哪个i2c总线
deviceAdress="0x08"     # i2c设备地址
pageRegAddress="0x7f"   # 存放页的寄存器地址

# 设置MMPF0100地址页
./i2cset -f -y $i2cBusNumber $deviceAdress $pageRegAddress $curPage 

# 显示一些参数
echo "   currentPage : $curPage"
echo "  firstAddress : $firstAddress"
echo "     byteCount : $byteCount"
echo "        i2cBus : /dev/dev-i2c$i2cBusNumber"
echo "  deviceAdress : $deviceAdress"
echo "pageRegAddress : $pageRegAddress"
echo 

# 显示行对应的数
busybox printf "      00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"
echo

# i是计数变量
i=$firstAddress
firstLine=true         # 用于判断第一行是否需要填充0
while [ $i -lt $(($byteCount+$firstAddress)) ]
do
    # 16个字节一行,换行并输出行号
    if [ $((i%16)) -eq 0 ];then
        busybox printf "\n0x%x0 " $((i/16))
        firstLine=false
    else
        # 用于填充一行前面的0,更多的方便16进制查看数据
        if $firstLine ;then
            padZero=$((i%16))
            busybox printf "\n0x%x0 " $padZero

            # 循环填充数据
            j=0
            while [ $j -lt $padZero ]
            do
                busybox printf " 00"
                j=$((j+1))

            done
            firstLine=false
        fi
    fi

    # 读取数据
    data=`./i2cget -f -y $i2cBusNumber $deviceAdress $i`
    busybox printf " %02x" $data

    i=$((i+1))
done

echo

# 输出结果:
#     root@android:/data/local # ./i2cData.sh 0 0x10 0x50
#        currentPage : 0
#       firstAddress : 16
#          byteCount : 80
#             i2cBus : /dev/dev-i2c1
#       deviceAdress : 0x08
#     pageRegAddress : 0x7f
#
#           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
#
#     0x10  00 00 3f 00 00 00 00 00 00 00 00 10 00 00 00 00
#     0x20  2b 1b 2b 0c c4 00 00 00 00 00 00 00 00 00 2b 1b
#     0x30  2b 0c c4 00 00 72 72 72 0c d4 00 00 2c 2c 2c 0c
#     0x40  e4 00 00 2c 2c 2c 0c e4 00 00 6f 6f 6f 0c f4 00
#     0x50  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
#     root@android:/data/local # 

 

时间: 2024-09-20 10:48:57

I.MX6 Android Linux shell MMPF0100 i2c 获取数据的相关文章

I.MX6 Android Linux shell MMPF0100 i2c 设置数据

#!/system/bin/busybox ash # # I.MX6 Android Linux shell MMPF0100 i2c 设置数据 # 说明: # 本文主要记录通过shell脚本来设置MMPF0100的数据. # # 2016-4-6 深圳 南山平山村 曾剑锋 # # 检查参数个数 if [ $# -lt 3 ]; then echo "USAGE:" echo " i2cSetData.sh <curPage> <address(hex)&

I.MX6 Android Linux UART send receive with multi-thread and multi-mode demo

/******************************************************************************************* * I.MX6 Android Linux UART send receive with multi-thread and multi-mode demo * 声明: * 1. 本软件是为了测试Android底层的Linux驱动以及硬件是否存在缺陷而编写的测试软件: * 2. 本软件可以设置为发送.接收.发送并接

I.MX6 Android shutdown shell command

/******************************************************************************* * I.MX6 Android shutdown shell command * 说明: * 想在I.MX6上执行shell关机命令,不过效果貌似不是很好,开关键多按两下又亮了. * * 2016-7-25 深圳 南山平山村 曾剑锋 ****************************************************

android linux shell 日期设置

/************************************************************************ android linux shell 日期设置 * 说明: * Android下的linux shell中的date和普通的date指令不一样,这里记录一下. * * 2016-6-6 深圳 南山平山村 曾剑锋 *********************************************************************

android-请教一个Android的从网络上获取数据的问题

问题描述 请教一个Android的从网络上获取数据的问题 Android 从网络上获取数据 跟安卓系统有关系吗,,,,用Android5.0以上的系统的手机请求到的数据跟5.0以下系统的手机请求到的数据不一样.(get请求) Android5,0以上的系统请求到的数据:{ "wegInstLt": [ { "billTypeCode": "0", "channelId": 530, "channelKind"

android网络编程:URL获取数据和图片

首先,开始最简单的网络编程实战,URL实现网络连接,不懂的童鞋可以参考JAVA中的URL编程,其原理是 一样的,在这里不再多做解释. 直接贴出实现源代码: public class DataActivity extends Activity { private EditText imagePathText; private static final String TAG="DataActivity"; private ImageView imageView; @Override pub

I.MX6 android 获取framebuffer信息

/******************************************************************************** * I.MX6 android 获取framebuffer信息 * 声明: * 调试显示屏的时候,我们可能会需要去知道我们设置的信息是否正确,或者有时候 * 需要去确认别人的设置的是否正确. * * 2016-1-20 深圳 南山平山村 曾剑锋 *********************************************

linux shell中获取mongodb最大连接数、内存使用情况等

前两天接到了一个新的需求,需要在linux shell脚本中监控到mongodb最大连接数.内存使用情况等. 但是我对于linux shel很不了解,只是会一些简单常用的linux的操作而已,只要一顿狂搜,最终多番尝试下终于获取到这些值. 成功的步骤大致如下: 0. ./mongostat -u admin -p admin --authenticationDatabase admin -n 1 --json >> aaa.txt 把mongodb监控到的一行数据以json格式写入到aaa.t

I.MX6 Android 5.1 纯Linux、U-Boot编译

/***************************************************************************** * I.MX6 Android 5.1 纯Linux.U-Boot编译 * 说明: * 单纯编译一下Linux内核和U-Boot这部分代码,用于测试用. * * 2017-5-12 台湾 中和区 曾剑锋 *********************************************************************