一个非常基本的电路使用MicroPython和SPI接口将ESP8266 MCU连接到74HC595移位寄存器。这就是我尝试发送数据的方式:
from machine import Pin, SPI
hspi = SPI(-1, baudrate=50000, polarity=0, phase=0, sck=Pin(14), mosi=Pin(13), miso=Pin(12), bits=8)
latch_pin = Pin(15, Pin.OUT)
latch_pin.off()
def send(s):
hspi.write(s)
latch_pin.on()
latch_pin.off()
为了测试,我在输出引脚和5V(通过100欧姆电阻)之间放置了8个LED,以查看发生了什么,并尝试使用此测试功能发送数据:
import time
def test_one(s):
send(chr(int(s)))
time.sleep(0.5) # only to be able to examine the leds after data was sent
def test():
[test_one(s) for s in [
'0b00000000',
'0b10000000',
'0b01000000',
'0b00100000',
'0b00010000',
'0b00001000',
'0b00000100',
'0b00000010',
'0b00000001',
'0b01111111',
'0b10111111',
'0b11011111',
'0b11101111',
'0b11110111',
'0b11111011',
'0b11111101',
'0b11111110',
'0b11111111']]
test()
正如您所看到的,在这个测试中有移动的1和移动的0。结果很有趣。值0000 0000被传输为1100 0010。之后,所有设置了一个位的值都被正确传输。那么0111 1111再次正确。在那之后,所有的值都是错误的。我已经用逻辑分析器检查了输出,看起来这些值是以两个字节而不是一个字节发送的。
第一个良好值为1000 0000:
具有单个1位0000 0001的最后一个值也被传输。
最后一个有效值是0111 1111:
下一个应该是1011 1111,而不是1100 0010 1011 1111。E、 g.发送的不是一个字节,而是两个字节:
我的第一个想法是,也许SPI使用的是7位而不是8位。但这是不可能的,因为在这种情况下,1000 0000也应该是错误的。(此外,SPI对象是使用bit=8参数创建的。)顺便说一句,我也尝试过硬件SPI(id=1),但也有同样的问题。所以这一定是我的程序有问题,而不是硬件,但我卡住了,无法解决这个问题。
send()函数使用chr()创建单个字符。有人能解释一下为什么有些单个字符作为两个字节发送,而另一些作为一个字节发送吗?
MicroPython基于Python3。。。
MicroPython的目标是在语言语法方面实现Python3.4标准(具有从较新版本中选择的功能),MicroPythin的大多数功能与docs.Python.org上的“语言参考”文档中描述的功能相同。
...因此< code>chr返回一个Unicode字符串。要指定通过SPI发送的确切字节,您需要为SPI write
方法提供一个< code>bytes对象。
如果将代码中的send(chr(int(s)))
替换为send(bytes([int(s。
控制器(我忽略了导入) 下面是我在控制器中引用的相关html页面。您可以假设每一个服务和存储库都正常工作,并完成了它的工作。 这是确认页面。这里有点不对劲。插入到表单的隐藏输入框中的数据不会被提交: 扬尼克
所以我有了这个spring集成项目。将网关用作触发批处理作业的触发器。我为网关制作了这个接口: 谢谢, 喷气机
问题内容: 我正在尝试将JSON发送到elasticSearch。我尝试使用Postman和SOAPUI数据是 我回来了以下错误 但是当我发布单个JSON数组即 然后工作正常。我是ElasticSearch的新手,所以不确定出什么问题。 问题答案: 首先尝试使用大括号,然后为数组命名。尝试一下,看看是否可行。 例如: 可能有效,因为它包含在对象内部。 更好 在尝试时,我发现它可以将数组隐式转换为J
在尝试发送存储在变量中的数据时,我遇到了一个问题。我希望变量是一个介于0和10之间的int,但我收到的是255或254作为值。请帮帮我 下面是我的代码:
问题内容: 嗨,我在下面的脚本中遇到了问题。我认为问题在于需要通过AJAX发送到php的数据。 jQuery的 并且,PHP 但是,如果我这样做 并改变这个 脚本工作正常。我需要做些什么才能使以上两个脚本都能正常工作?提前致谢。 问题答案: 我将我的评论作为答案。 除了使用已弃用的jQuery API外,其他人没有指出的是以下内容: 您在下一行中正在做什么: 是您向服务器保证HTTP实体将是JSO
我一直在用c做一些套接字编程,我想让我的程序的用户指定要从中发送和接收数据包的接口。套接字(7) 的 linux 手册页说, 你可以设置套接字选项SO_BINDTODEVICE将套接字绑定到一个特定的设备, 比如 “eth0”。我还想到,在调用 bind() 时,您通常会向它传递一个sockaddr_in结构,并将 sin_addr.s_addr 属性设置为 INADDR_ANY 以指示套接字绑定