raspberry pi Pico使用MicroPython变砖后的解决方法

Posted svchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了raspberry pi Pico使用MicroPython变砖后的解决方法相关的知识,希望对你有一定的参考价值。

使用raspberry pi Pico的原因

在硬件产品(单片机)的开发中我们往往需要借助一些额外的仪器/设备进行产品的辅助测试, 假设我们需要一个IO+ADC类型辅助设备, 以往的做法是 原理图->PCB->程序, 而现在随着开源硬件的流行很多时候我们没有必要在重复造轮子。 arduino,raspberry pi,micro:bit,raspberry pi Pico等都是不错误的选择。其中raspberry pi Pico是后来者,并且支持C 和 MicroPython编程,入门比较简单,单片机开发者可以无门槛上手,几乎没有学习成本。

问题来了

我使用的是MicroPython开发方式,客户端工具使用Thonny。
当我不小心写了一个错误的python程序并且将其下载到Pico运行的时候。
错误的程序如图:

会出现以下问题:

WARNING:root:Unexpected echo. Expected b\'%Run -c $EDITOR_CONTENT\\r\\n\', got b\'TypeError: function takes\'
Connection lost (EOF)
Use Stop/Restart to reconnect.
如图:

解决方法

python是解释形语言,我们下载进去的程序其实仅仅是一个文本文件。python仅在运行且运行到该错误行时才会报错。

一些修复尝试

按照我的理解如果用户程序错误,不应该也不至于造成整个系统的瘫痪。 然而上述这个错误我尝试了很多办法都无法解决, 包括重新下载MicroPython的.uf2文件

强制擦除MCU的Flash

于是我想起了j-link,因为raspberry pi Pico本身就是一个Cortex-M0内核的单片机,
注意选择的是M0_0内核, 因为Pico有2个核。
如图:

或者直接点击快捷键 [F4]

擦除成功

重新连接 Pico,提示更新MicroPython固件(因为刚才擦除了flash),点击更新

至此,Pico满血复活

总结

因为Pico我也是刚接触,不确定是否是固件bug,可能还有其他更好的解决方案。以上方法并不是一个非常好的解决方案,因为并不是所有人都有j-link的。

友情提醒

在Thonny的编辑中,我们是可以 [F5] 先试运行程序的。即使程序有问题因为并没有保存到MCU中,所以并不会造成如上的变砖问题。

以上是关于raspberry pi Pico使用MicroPython变砖后的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

树莓派Pico-Raspberry Pi Pico简介

raspberry pi Pico使用MicroPython变砖后的解决方法

Raspberry_pico 移植 lvgl

Raspberry_pico 移植 lvgl

Raspberry_pico 移植 lvgl

由于 Nmake 错误,Raspberry pico 无法编译