将新代码上传到 Pico 时出现问题

问题描述 投票:0回答:2

我有一个 Raspberry Pi Pico。当我向其上传新程序时,之前的程序仍在运行。我应该怎么办? 例如,我编写代码使 pin22 闪烁,但是当我将其更改为 pin21 时,pin22 变为高电平并保持开启状态(不闪烁)。

import machine
import time

led_pin = machine.Pin(22, machine.Pin.OUT)

while True:
    led_pin.value(not led_pin.value())
    time.sleep(0.5)

我尝试用不同的方式将代码保存在 Pico 中,但没有成功。

microcontroller micropython raspberry-pi-pico
2个回答
0
投票

当您将代码更改为使用引脚 21 而不是引脚 22 时,您的新代码不会将引脚 22 配置为输出。它根本没有配置引脚 22。

因此您不能期望 22 号引脚上的电压是多少。 Pico 没有向其施加任何电压。

可能板上有上拉或下拉电阻,会使其在不被主动驱动时处于高电平或低电平。或者也许没有,在这种情况下信号将是“浮动的”。它可能很高,也可能很低,或者介于两者之间。它可能会随着时间的推移而波动和变化。所有的赌注都失败了,因为你不再控制它。

您没有“之前的程序仍在运行”。您只是对您不驱动的引脚应该具有的电压抱有不切实际的期望。未驱动的引脚可能有任何电压,但不能保证为零伏。


0
投票

一般来说,MicroPython 不太擅长重置硬件状态,即使您进行软重置也是如此。如果您想撤消以前版本的代码完成的硬件配置,您应该重新启动 RP2040,使用重置引脚(称为 RUN)重置它,或在新版本的代码中显式设置配置。

© www.soinside.com 2019 - 2024. All rights reserved.