【发布时间】:2020-07-02 17:55:38
【问题描述】:
我正在尝试编写一个程序,它将以算术方式将位移动到某个变量中。该程序适用于树莓派,将利用板载串行外设接口 SCLCK 功能来控制正在发送的位的速度,还将控制位的读取。换句话说,程序将在每个时钟周期运行一次的循环内。
然后,我们使用的模数转换器将根据以下内容以 MSB 样式发送位:8 位、中断位、8 位、中断位、8 位,总共 24 位数据正在发送.
然后程序将以相同的速度运行一个循环,以在准确的时钟周期读取位,然后在时钟周期获取我们正在输入的 GPIO 引脚的值,无论是真还是假,这将每 27 (24, + 3 个中断) 时钟周期继续无限循环。目标是为连接到模数转换器的麦克风的输出接收 24 位浮点数,该转换器将向输入端发送可变电压,进而产生 24 位浮点数。由于树莓派只支持串行接口,我一次只能接收一个比特,并且需要能够将它们放在一起以获得我需要的数字。
我想问是否有可用的方法,在 python 语言中,对变量进行算术移位,以便我可以发送从 GPIO 引脚接收到的位。我知道这可以在组装中完成,但我需要有关树莓派 GPIO 引脚地址的所有信息。这还包括针对特定应用的广泛网络。
关于如何实现这一点的任何想法?
if GPIO.input(25): #If it is true
#Arithmetic Logic Shift Left a one
else:
#Arithmetic Logic Shift Left a zero –
【问题讨论】:
-
欢迎来到 SO!如果你有一个 0b 号码,你可以使用
int(binary)或者如果你有一个字符串,你可以使用int(binary_string, 2)吗? GPIO 在 Python 中为您提供什么格式的数据? -
数据将被表示为“0”或“1”,直到它被改变。我需要能够算术左移变量并添加引脚的当前值。然后我需要能够将该数字转换为整数。
-
"0"和"1"看起来像字符串。将它们全部连接起来并调用int(binary_string, 2)似乎就足够了。 -
不是字符串,我只是在强调。它是一或零,开或关。
-
这似乎是您的第一个问题。请不要低估以书面形式向不认识您、您的项目、您以前的经验和任何其他背景的人解释问题是多么复杂。 Stack Overflow 是一个很棒的地方,如果你的问题表达得足够好,你可以获得很好的答案。不要气馁。写好问题很难,但你会得到好的答案。
标签: python binary decimal bit-shift gpio