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)
怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
- shaoziyang
- 帖子: 3966
- 注册时间: 2019年 10月 21日 13:48
Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
micropython使用的是python3语法,不支持print buf,需要改用 print(buf)
Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
我用i2c1.readfrom_mem(76,0x07,2,addrsize=8)读取MMA7660的模式寄存器中的数据时,结果是:b'\x00\x01' 。
其中:b代表什么意思?\x00中的斜杠代表什么意思?为什么两个字节的内容不一样?
其中:b代表什么意思?\x00中的斜杠代表什么意思?为什么两个字节的内容不一样?
- shaoziyang
- 帖子: 3966
- 注册时间: 2019年 10月 21日 13:48
Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
这是python表示数据的方式,b代表bytes,\x代表16进制。
Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
我试着查看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寄存器输出值。
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
- 帖子: 3966
- 注册时间: 2019年 10月 21日 13:48
Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
正常的吧,可以在Thonny或mu中用一个循环将数据print出来进行可视化处理。
Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
1、我下载thonny失败。可能是我们的办公电脑设置了防火墙吧。用Notepad++行吗?怎么读取缓存(buf)的数据?
2、在视频“欢迎进入micropython的...”中,循环内用readfrom_mem_into()语句后,用return函数获取结果数据,在MMA7660的操作过程中是否也可以用return函数?
2、在视频“欢迎进入micropython的...”中,循环内用readfrom_mem_into()语句后,用return函数获取结果数据,在MMA7660的操作过程中是否也可以用return函数?
- shaoziyang
- 帖子: 3966
- 注册时间: 2019年 10月 21日 13:48
Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
readfrom_mem_into()将寄存器内容读取到预设的缓冲区中,然后根据需要提取数据并返回。
社区网盘提供了Thonny便携版下载:
https://www.micropython.org.cn/forum/vi ... =27&t=1879
社区网盘提供了Thonny便携版下载:
https://www.micropython.org.cn/forum/vi ... =27&t=1879
Re: 怎么查看pyboardCN V2板子上MMA7660的寄存器读取数据?
请教:Thonny中的解释器选哪个?
Thonny的解释器(默认)
micropython(SSH)
micropython(一般)
Thonny怎么和pyboard连接,怎么操作pyboard?
Thonny的解释器(默认)
micropython(SSH)
micropython(一般)
Thonny怎么和pyboard连接,怎么操作pyboard?
-
- 随机主题
- 回复总数
- 阅读次数
- 最新文章
-
- 8回复总数
- 5315 阅读次数
- 最新文章 由 shaoziyang
2020年 5月 30日 08:43
-
- 2回复总数
- 2226 阅读次数
- 最新文章 由 slotg
2020年 5月 4日 09:18
-
- 1回复总数
- 2507 阅读次数
- 最新文章 由 shaoziyang
2020年 5月 4日 09:01