【发布时间】:2021-07-27 09:35:30
【问题描述】:
TLDR: 有没有办法在 0x20 和 0x7E 之间用 5 伏创建一个十六进制值?市场上是否有便宜的组件或电路逻辑可以实现这一点?
我不确定正确的术语是什么,但这是我想要做的:
我有一个蓝牙模块通过 UART0 TX 和 UART0 RX 连接到我的 pico。解释它的用途有点长,但基本上,我希望蓝牙模块在没有我的 pico 连接的情况下工作。我有一个输出信号的设备,pico 读取信号,然后告诉蓝牙模块传输到接收器。但是,由于要传输的数据实际上并不重要,因此剪掉 pico 并让蓝牙模块直接读取信号然后传输是有意义的。
我的设备可以在我想要的时候准确输出,但它输出相当于十六进制的 00。我的电脑是通过蓝牙连接的,可以正常阅读。但是,通过 RX 读取输入的 pico 不能。我发现 micropython 无法使用 UART 读取 00 - UART.any() 和 UART.read() 需要一个字符,而 00 只对应于 NULL。
所以本质上,我需要一些方法来传输 0x20 和 0x7E 之间的十六进制值,而不使用树莓派 pico。是否有某种组件能够做到这一点?在实际应用中,蓝牙模块将连接到 5V 电源,最大电流为 5 安培。
也欢迎任何关于如何让 Pico 通过 RX 引脚以十六进制读取 00 的想法。这样做的目的是不需要多个 Picos,因为接收器和发射器之间的距离会很远。
【问题讨论】:
-
您的蓝牙设备不需要十六进制值,它甚至不知道十六进制的含义。您只是以十六进制格式显示二进制值。你申请的目的是什么?你想看看你是否在蓝牙模块的范围内?可能有更好的方法来解决您的问题
-
我明白,我只是使用十六进制,因为这是我在终端上看到的。目的是我有一个可以发出信号的设备。当它发出信号时(距离很远),我想知道它。由于我只想知道信号已经发出,因此发射器可以与从模块进行任何通信。它传达的简单事实让我知道信号已经发出。这意味着在那里有一个pico是一种浪费。如果 pico 可以从缓冲区中读取 00,我的想法会奏效。有任何想法吗?感谢回复
-
最好将确切的蓝牙模块添加到您的问题中,但我认为这并不是那么简单。该模块可能期望 pico 提供更多功能,而不仅仅是一个值才能正常运行。
-
我正在使用 HC-06。我已经对其进行了测试,如果我能找到解决 00 问题的方法,一切都应该有效。我将它连接到电源并将它与我的设备配对。 HC-06 通过 RX 接收到的任何东西都会传输到配对的接收器。问题是发送信号的设备只发出高信号,没有内容。所以它被解释为 00。没有办法解决这个问题,我将不得不使用微控制器。
-
我认为您不能“伪造”您的模块所需的串行连接。也许其他人可以进一步帮助您
标签: bluetooth micropython raspberry-pi-pico