• I2C 在 u-boot 上面,有直接操作 I2C 的函数

    // drivers/i2c/i2c_core.c
    
    // 设置在哪个 I2C bus 上工作
    276 int i2c_set_bus_num(unsigned int bus)
    277 {
    278 int max;
    279
    280 if ((bus == I2C_BUS) && (I2C_ADAP->init_done > 0))
    281 return 0;
    282
    283 #ifndef CONFIG_SYS_I2C_DIRECT_BUS
    284 if (bus >= CONFIG_SYS_NUM_I2C_BUSES)
    285 return -1;
    286 #endif
    287
    288 max = ll_entry_count(struct i2c_adapter, i2c);
    289 if (I2C_ADAPTER(bus) >= max) {
    290 printf("Error, wrong i2c adapter %d max %d possible\n",
    291 I2C_ADAPTER(bus), max);
    292 return -2;
    293 }
    294
    295 #ifndef CONFIG_SYS_I2C_DIRECT_BUS
    296 i2c_mux_disconnect_all();
    297 #endif
    298
    299 gd->cur_i2c_bus = bus;
    300 if (I2C_ADAP->init_done == 0)
    301 i2c_init_bus(bus, I2C_ADAP->speed, I2C_ADAP->slaveaddr);
    302
    303 #ifndef CONFIG_SYS_I2C_DIRECT_BUS
    304 i2c_mux_set_all();
    305 #endif
    306 return 0;
    307 }
    //etc i2c_set_bus_num(1); // i2c slave 匹配
    313 int i2c_probe(uint8_t chip)
    314 {
    315 return I2C_ADAP->probe(I2C_ADAP, chip);
    316 }
    // etc i2c_probe(0x68)
    // 返回是否成功, 0 表示成功 , 非 0 表示失败 // i2c 读写 写
    330 int i2c_read(uint8_t chip, unsigned int addr, int alen,
    331 uint8_t *buffer, int len)
    332 {
    333 return I2C_ADAP->read(I2C_ADAP, chip, addr, alen, buffer, len);
    334 }
    335
    336 int i2c_write(uint8_t chip, unsigned int addr, int alen,
    337 uint8_t *buffer, int len)
    338 {
    339 return I2C_ADAP->write(I2C_ADAP, chip, addr, alen, buffer, len);
    340 } //etc
    uchar wri_data = 0x3f, red_data;
    90 if (i2c_write(0x68, 1, 1, (uchar *)&wri_data, sizeof(int)))
    91 puts("write error\n");
    92
    93 if (i2c_read(0x68, 1, 1, (uchar *)&red_data,
    94 sizeof(int))) {
    95 puts("Could not read the MCU; something fundamentally"
    96 " wrong on the I2C bus.\n");
    97 return -EIO;
    98 }

uboot i2c 操作函数记录的更多相关文章

  1. STM32 常用GPIO操作函数记录

    STM32读具体GPIOx的某一位是1还是0 /** * @brief Reads the specified input port pin. * @param GPIOx: where x can ...

  2. Delphi中复制带有String的记录结构时不能使用Move之类的内存操作函数

    请看下面的代码: program TestRecord; {$APPTYPE CONSOLE} uses  SysUtils,  Math; type  TRecordA = record    Na ...

  3. 笨办法学Python记录--习题38-40,复习前面,运用list操作函数

    #习题38 区分列表和字符串,用到了split(字符串专用函数),join.append.pop(这些是list操作函数) ten_things = "Apples Oranges Crow ...

  4. Delphi文件操作函数

    文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道.文件的本质是一个数据流,所有的文件实际上是一串二进制序列.文件管理包括:1.文件操作.2.目录操作.3.驱动器操作.三部分. 1.常见文 ...

  5. Python--set常用操作函数

    python提供了常用的数据结构,其中之一就是set,python中的set是不支持索引的.值不能重复.无需插入的容器. 简单记录下set常用的操作函数: 1.新建一个set: set("H ...

  6. Winform开发框架之权限管理系统改进的经验总结(4)-一行代码实现表操作日志记录

    在前面介绍了几篇关于我的权限系统改进的一些经验总结,本篇继续这一系列主体,介绍如何一行代码实现重要表的操作日志记录.我们知道,在很多业务系统里面,数据是很敏感的,特别对于一些增加.修改.删除等关键的操 ...

  7. PHP网络操作函数汇总

    PHP网络操作函数汇总 投稿:junjie 字体:[增加 减小] 类型:转载   这篇文章主要介绍了PHP网络操作函数汇总,本文列举了如gethostbyaddr.gethostbyname.head ...

  8. c#读写共享内存操作函数封装

    原文 c#读写共享内存操作函数封装 c#共享内存操作相对c++共享内存操作来说原理是一样,但是c#会显得有点复杂. 现把昨天封装的读写共享内存封装的函数记录下来,一方面希望给需要这块的有点帮助,另一方 ...

  9. C语言的常用字符串操作函数(一)

    一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...

随机推荐

  1. 前端解读面向切面编程(AOP)

    前言 面向对象(OOP)作为经典的设计范式,对于我们来说可谓无人不知,还记得我们入行起始时那句经典的总结吗-万事万物皆对象. 是的,基于OOP思想封装.继承.多态的特点,我们会自然而然的遵循模块化.组 ...

  2. python数据分析---第04章 NumPy基础:数组和矢量计算

    NumPy(Numerical Python的简称)是Python数值计算最重要的基础包.大多数提供科学计算的包都是用NumPy的数组作为构建基础. NumPy的部分功能如下: ndarray,一个具 ...

  3. JS-排序详解-选择排序

    说明 时间复杂度指的是一个算法执行所耗费的时间 空间复杂度指运行完一个程序所需内存的大小 稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面 不稳定指,如果a=b,a在b的前面,排序后可能会交换 ...

  4. BZOJ.3928.[CERC2014]Outer space invaders(区间DP)

    BZOJ3928 双倍经验BZOJ4048 Codeforces GYM100543 L \(Description\) \(Solution\) 考虑出现时间在\([l,r]\)内的敌人,设最远的敌 ...

  5. 洛谷P1784 数独

    To 洛谷.1784 数独(类似(或者说相同)题:CODEVS.4966 简单数独(4*4数独) CODEVS.2924 数独挑战) 题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数 ...

  6. 潭州课堂25班:Ph201805201 MySQL第一课 (课堂笔记)

    一般说来,关系形在磁盘中,非关系表在内存中, 进入 MySQL: mysql -u用户名 -p密码 mysql -uroot -pqwe123 mysql -h127.0.1 -P3306 -uroo ...

  7. SQL数据库连接到服务器出错——无法连接到XXX

    问题:Windows或者SQL Server身份验证下,出现连接到服务器出错 解决方式: 1.检查实例名称是否正确,如下 根据自己电脑的实际名称修改修改如下: 1)Microsoft SQL Serv ...

  8. db2 事务日志

    曾经因为对DB2 的 NOT LOGGED INITIALLY 属性认识不足而吃了亏.当时需要往表中插入大量的数据,最初也没有考虑太多就使用了传统的insert 命令,由于数据量实在过于巨大,而且系统 ...

  9. [TenserFlow学习笔记]——安装

    最近人工智能.深度学习.机器学习等词汇很是热闹,所以想进一步学习一下.不一定吃这口饭,但多了解一下没有坏处.接下来将学习到的一些知识点做一下记录. 1.安装环境 在VMWare虚拟机中安装最新版本的U ...

  10. tcp连接状态查看

    linux常用查看tcp状态工具netstat和ss,这两个工具查看时都有1个Recv-Q和Send-Q 解释如下: 对应处于Listen状态的套接字: Recv-Q表示已建立连接队列中连接个数(等待 ...