怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

STM32系列
pyboard相关
zl_cq
帖子: 17
注册时间: 2020年 6月 9日 17:19

怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#1

帖子 zl_cq » 2021年 2月 22日 11:11

from machine import I2C,Pin
cs = Pin(Pin.cpu.B5,Pin.OUT)
cs.high()
i2c1 = I2C(1)
i2c1.scan()
[76]
buf = bytearray(1)
i2c1.readfrom_mem_into(76,0x07,buf)
print buf
出错。提示:语法错误(syntaxerror:invalid syntax)



 
 

头像
shaoziyang
帖子: 1732
注册时间: 2019年 10月 21日 13:48

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#2

帖子 shaoziyang » 2021年 2月 22日 13:48

micropython使用的是python3语法,不支持print buf,需要改用 print(buf)

zl_cq
帖子: 17
注册时间: 2020年 6月 9日 17:19

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#3

帖子 zl_cq » 2021年 2月 22日 15:45

我用i2c1.readfrom_mem(76,0x07,2,addrsize=8)读取MMA7660的模式寄存器中的数据时,结果是:b'\x00\x01' 。
其中:b代表什么意思?\x00中的斜杠代表什么意思?为什么两个字节的内容不一样?

头像
shaoziyang
帖子: 1732
注册时间: 2019年 10月 21日 13:48

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#4

帖子 shaoziyang » 2021年 2月 22日 20:17

这是python表示数据的方式,b代表bytes,\x代表16进制。

zl_cq
帖子: 17
注册时间: 2020年 6月 9日 17:19

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#5

帖子 zl_cq » 2021年 2月 23日 09:33

谢谢! :DING
  :lol:
 

zl_cq
帖子: 17
注册时间: 2020年 6月 9日 17:19

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#6

帖子 zl_cq » 2021年 2月 23日 18:20

我试着查看MMA7660的x轴和TILT寄存器输出的结果:
  buf1=bytearray(1)          #定义缓存
  print(buf1)                    #查看缓存
bytearray(b'\x00')
  buf1='\x01'                    #给缓存赋值:00000001
  i2c1.writeto_mem(76,0x07,buf1,addrsize=8)          #给MODE寄存器赋值:00000001,使MMA7660处于Active状态。
  buf1=bytearray(1)                                                 #重新定义缓存,做为输出缓存,查看x轴输出。
  i2c1.readfrom_mem_into(76,0x00,buf1,addrsize=8)           #左右晃动板子过程中,读取x轴数据。
  print(buf1)
bytearray(b'\x0f')                                                    #左右晃动板子时,x轴的输出值。
  print(buf1)
bytearray(b\'x0f')                                                    #缓存中的数据不会自己改变。
  i2c1.readfrom_mem_into(76,0x00,buf1,addrsize=8)          #板子静置时,读取x轴数据。
  print(buf1)
bytearray(b'\x01')                                                              #板子静置时,x轴的输出值。
  i2c1.readfrom_mem_into(76,0x03,buf1,addrsize=8)         #板子平放时,读取tilt寄存器。
  print(buf1)
bytearray(b'\x85')                                                             #板子平放时,tilt寄存器输出值。
  i2c1.readfrom_mem_into(76,0x03,buf1,addrsize=8)        #板子立起放置时,读取tilt寄存器。
  print(buf1)
bytearray(b'\x19')                                                             #板子立起放置时,tilt寄存器输出值。
 

头像
shaoziyang
帖子: 1732
注册时间: 2019年 10月 21日 13:48

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#7

帖子 shaoziyang » 2021年 2月 23日 20:29

正常的吧,可以在Thonny或mu中用一个循环将数据print出来进行可视化处理。

zl_cq
帖子: 17
注册时间: 2020年 6月 9日 17:19

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#8

帖子 zl_cq » 2021年 2月 25日 09:21

1、我下载thonny失败。可能是我们的办公电脑设置了防火墙吧。用Notepad++行吗?怎么读取缓存(buf)的数据?
2、在视频“欢迎进入micropython的...”中,循环内用readfrom_mem_into()语句后,用return函数获取结果数据,在MMA7660的操作过程中是否也可以用return函数?

头像
shaoziyang
帖子: 1732
注册时间: 2019年 10月 21日 13:48

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#9

帖子 shaoziyang » 2021年 2月 25日 10:09

readfrom_mem_into()将寄存器内容读取到预设的缓冲区中,然后根据需要提取数据并返回。

社区网盘提供了Thonny便携版下载:
https://www.micropython.org.cn/forum/vi ... =27&t=1879

zl_cq
帖子: 17
注册时间: 2020年 6月 9日 17:19

Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?

#10

帖子 zl_cq » 2021年 3月 3日 08:20

请教:Thonny中的解释器选哪个?
Thonny的解释器(默认)
micropython(SSH)
micropython(一般)

Thonny怎么和pyboard连接,怎么操作pyboard?

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章