Nucleo-F411RE连接DS3231模块

  • shaoziyang
  • LV5工程师
  • |      2016-05-04 21:00:47
  • 浏览量 1493
  • 回复:0

首先要感谢fighter版主提供的Nucleo-F411RE开发板,使我可以在Nucleo-F411RE上继续测试,我原来的那块坏了。


下面介绍在Nucleo-F411RE开发板上,使用Micropython控制DS3231时钟模块的方法。假设Micropython固件已经写入开发板,具体方法参考以前的帖子【在STM32F746G-Disco开发板上玩MicroPython】。


先将DS3231时钟模块(RTC)连接到F411开发板的I2C2接口上(I2C1无法使用,暂时没有找出原因)。DS3231有6根线,我们暂时只需要连接4个。具体连线是:


SCL -- B10
SDA -- B3
GND -- GND
VCC -- 3V3


Nucleo-F411RE连接DS3231模块

 

我们先定义一个I2C对象

from pyb import I2C



i2c = I2C(2, I2C.MASTER, baudrate=100000)

 

 

再定义一个简单的函数,读取地址是0的寄存器,也就是秒,然后将它转换为十进制形式(原来是BCD码),并打印出来。

def test():

    i2c.send(0, 104)

    b = i2c.recv(1, 104)

    print(int(b/16),b%16)



while True:

    test()

    pyb.delay(500)



21

22

23

24

25

26

27

28

29

30

 

上面代码中,i2c.send是发送数据到I2C总线,它有两个参数,第一个是数据,第二个是I2C芯片的地址;i2c.recv函数类似。还可以用i2c.scan()函数搜索总线上已有的芯片,返回参数是这些芯片的地址。

 

  • I2C芯片的地址是不包含读写位的
  • I2C1暂时无法使用,原因未知。

 

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子