一、场景还原
我在树莓派Pico板子里烧写完后缀.uf2固件后,在Thonny里打开LED灯的呼吸灯程序,如图1中点击“This computer”后打开呼吸程序并执行,执行后发现Pico板运行正常,后把改呼吸灯程序改为main.py文件通过“Raspberry Pi Pico”打开并执行,为了验证确实.py文件掉电后也能执行,我把Pico板USB口拔出后再插上,发现LED确实有呼吸灯效果,说明程序已经固化,但是我再连接上Thonny软件后发现“Raspberry Pi Pico”总是弹出如图2的错误:
Device is busy -- can`t perform this action now.
Please wait or cancel current work and try again!
并且在Shell区也提示:
Device is busy or does not respond. Your options:
wait until it completes current work;
use Ctrl+C to interrupt current work;
use Stop/Restart to interrupt more and enter REPL.
我根据提示按Ctrl+C没法中断,又尝试长按Pico板的BOOTSE也没用。
图1
图2
二、问题成因
由于我已经把LED呼吸灯效果的程序,改成main.py文件烧录进Pico板里了,目前Thonny软件和Pico板通过“Raspberry Pi Pico”没法获取到main.py文件,说明Thonny软件与Pico板没法正常交互数据了。那么如果我把固件(.uf2文件)重新烧录,是否就能解决这个问题,这就涉及到一些知识点,要不要对以前的.uf2文件擦除,并且目前程序下载口已经是com口,怎么重新回到usb移动硬盘口模式?
三、解决方式
1.烧录口重新识别:拔出Pico板上的USB接口线,按住BOOTSE键(一直按住),把Pico板通过USB线接入电脑,松开BOOTSE键,这时在设备管理器里就可以看到com口又重新转为移动硬盘接口;
2.擦除原来的.uf2文件:需要用文件flash_nuke.uf2文件来擦除,流程和.uf2固化一样,擦除完成后固化你准备好的.uf2文件即可,官网中有对擦除FLASH的说明,和下载路径,如图3。具体链接:Raspberry Pi Documentation - Raspberry Pi Pico and Pico W
图3
四、总结
1.Pico板里用.uf2文件擦除Flash不算难,要配合BOOTSE键来操作,一定要注意Pico板在断电状态下,按住BOOTSE键后再把USB线接入电脑,就可用flash_nuke.uf2文件来擦除;
2.一般我们只用从“This computer”里打开.py文件来执行,这时用Ctrl+C来中断执行,一般都可以;
3.只有我们调试没问题程序才考虑通过“Raspberry Pi Pico”打开,并改为main.py来执行,这时用Ctrl+C就不一定能中断程序。
4.需要flash_nuke.uf2文件的可以去官网获取,或者从我上传的资源里下载:https://download.youkuaiyun.com/download/CYMHWT/88374760?spm=1001.2014.3001.5503