打印
[STM32F4]

【转】[MicroPython]TPYBoard I2C的用法

[复制链接]
796|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
不会发光的LED|  楼主 | 2016-11-10 22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
先看看基本用法:

from pyb import I2C
    i2c = I2C(1)                         # create on bus 1
    i2c = I2C(1, I2C.MASTER)             # create and init as a master
    i2c.init(I2C.MASTER, baudrate=20000) # init as a master
    i2c.init(I2C.SLAVE, addr=0x42)       # init as a slave with given address
    i2c.deinit()                         # turn off the peripheral
    i2c.init(I2C.MASTER)
    i2c.send('123', 0x42)        # send 3 bytes to slave with address 0x42
    i2c.send(b'456', addr=0x42)  # keyword for address
    i2c.is_ready(0x42)           # check if slave 0x42 is ready
    i2c.scan()                   # scan for slaves on the bus, returning
    #   a list of valid addresses
    i2c.mem_read(3, 0x42, 2)     # read 3 bytes from memory of slave 0x42,
    #   starting at address 2 in the slave
    i2c.mem_write('abc', 0x42, 2, timeout=1000) # write 'abc' (3 bytes) to memory of slave 0x42
    # starting at address 2 in the slave, timeout after 1 second

   
    I2C的用法:

  • class pyb.I2C(bus, ...)

    bus,I2C总线的序号
  • i2c.deinit(),解除I2C定义
  • i2c.init(mode, *, addr=0x12, baudrate=400000, gencall=False),初始化

       . mode,只能是 I2C.MASTER 或 I2C.SLAVE
       .addr,7位I2C地址
       .baudrate,时钟频率
       .gencall,通用调用模式
  • i2c.is_ready(addr),检测I2C设备是否响应,只对主模式有效
  • i2c.mem_read(data, addr, memaddr, *, timeout=5000, addr_size=8),读取数据

        .data,整数或者缓存
        .addr,设备地址
        . memaddr,内存地址
        . timeout,读取等待超时时间
        .addr_size,memaddr的大小。8位或16位
  • i2c.mem_write(data, addr, memaddr, *, timeout=5000, addr_size=8),写入数据,参数含义同上
  • i2c.recv(recv, addr=0x00, *, timeout=5000),从总线读取数据

        . recv,需要读取数据数量,或者缓冲区
        . addr,I2C地址
        . timeout,超时时间
  • i2c.send(send, addr=0x00, *, timeout=5000)

     . send,整数或者缓冲区
     . addr,I2C地址
     . timeout,超时时间
  •     i2c.scan(),搜索I2C总线上设备。

沙发
huangcunxiake| | 2016-11-11 10:43 | 只看该作者
I2C的操作在这个上面好简单。

使用特权

评论回复
板凳
不会发光的LED|  楼主 | 2016-11-11 20:00 | 只看该作者
huangcunxiake 发表于 2016-11-11 10:43
I2C的操作在这个上面好简单。

上层简单那,底层就麻烦
一样的

使用特权

评论回复
地板
zhuotuzi| | 2016-11-11 20:06 | 只看该作者
如果想搞的详细点就不好办了,这个只能玩通用用法的。

使用特权

评论回复
5
不会发光的LED|  楼主 | 2016-11-13 00:16 | 只看该作者
zhuotuzi 发表于 2016-11-11 20:06
如果想搞的详细点就不好办了,这个只能玩通用用法的。

恩,最简单的用法而已

使用特权

评论回复
6
643757107| | 2016-11-13 12:40 | 只看该作者
刚接触不久这个语言,只听说抓包能力强,用于黑客攻击上。

使用特权

评论回复
7
不会发光的LED|  楼主 | 2016-11-13 17:21 | 只看该作者
643757107 发表于 2016-11-13 12:40
刚接触不久这个语言,只听说抓包能力强,用于黑客攻击上。

封装集成度很高,
类似于脚本编程,
效率也不错

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

102

帖子

1

粉丝