• 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 "
    0x%x0 " $((i/16))     
            firstLine=false
        else
            # 用于填充一行前面的0,更多的方便16进制查看数据
            if $firstLine ;then
                padZero=$((i%16))
                busybox printf "
    0x%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 # 
  • 相关阅读:
    企业微信小程序用getImageInfo保存图片提示fail download image fail
    post提交定义传输数据格式-设置请求头content-type
    微信小程序-wxml模板页面逻辑运算
    微信小程序-页面间传参
    微信小程序-wxml标签绑定data值传参给js方法(事件传参)
    微信小程序-子组件调用父组件
    微信小程序-调用组件内方法(父组件调用子组件)
    input中number类型去掉上下箭头
    js slice 截取数组或字符串
    vue组件库小练习——目录
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5346306.html
Copyright © 2020-2023  润新知