树莓派Raspberry Pi Pico开发板踩坑:重置后设备管理器各种不识别,未知设备/unknown device

大家好!作者潜伏C站多年,第一次写文章,不求别的,觉得有用的话点个赞吧,也是对作者最大的鼓励,谢谢大家!有疑问的可以留言或者私信,作者会定期回复。

一.背景交待

        作者工作之余喜欢用MicroPython玩单片机编程,鼓捣一些电子DIY。几月前RPi Pico发布后,作者在淘宝买了一块尝鲜,不贵就20+软妹币,在目前的市场行情下比STM32开发板略便宜,和ESP32相当。跟着教程成功点了灯,再试了PWM, ADC, RTC, UART, SPI等等,发现别的都挺好,就是不能做多线程(作者这一想法直接导致了后面的踩坑事件),至少WeAct Studio的STM32F411开发板是可以玩多任务的。

        当然Pico也有不少优点:

        1.做工优良,比起其他山寨的开发板漂亮不是一点半点,还有邮票孔工艺支持整片贴装;

        2.自带2MFlash存储器,可以完成本地的log文件记录,也不用额外花钱买Flash芯片,还要自己动手焊接;

        3.较高的主频133MHz;

        4.多达16路PWM,30个IO,4路ADC等等;

        5.最重要的是无论烧录MicroPython固件还是随后的编写程序都极其简单直接。

        作者最近正在开发一个简单的测试工装,使用两路ADC分别监控和记录电压和电流的变化,log文件读写功能正好能排上用场。写起程序来也极其简单,参考MicroPython官网的教程即可。但是在尝试多线程的时候踩了一个大坑,下面细细说来。

二.问题描述

        本来用一个大的For循环加延时和两条ADC.read()指令然后写文件操作到Flash就已经可以完成采样和log功能。后来作者尝试使用_thread类的新建线程,调试运行后就停不下来,不论怎么重连开发板也进不到Thonny开发环境的文件系统里。作者无奈决定重置Pico开发板,即按着BOOTSEL键再插USB口进入bootloader模式,见下图。

        这时会弹出127M(实际没这么大)的U盘,里面有两个说明性质的html文件和txt文件。拖入MicroPython的.uf2文件(下载链接见文章后半部分),自动重启后,进入normal模式后设备管理器死活不识别开发板。悲剧了!于是到处搜教程找解决办法,中文的英文的教程和论坛看了不下20篇,前前后后搞了好几天终于搞定,发现这块的中文资料太少,为了避免后来人再次踩坑,作者决定记录下来解决办法。

        设备管理器不识别开发板,作者第一反应USB驱动是不是不对,到处下驱动,Board_CDC、 COM_serial、Atmel驱动然后手动安装都没有用。又下了驱动精灵也不管用,论坛上有说用Zadig安装USB驱动,一试还试出新问题了。有人说要在Zadig 2.5版本上将RP2 boot(interface0)的驱动安装成USB Serial (CDC),作者老老实实做了,软件弹窗警告会修改系统文件,作者作死点了继续,安装成功后旧问题没解决,更惨的是再也调不出U盘,在上一层问题没解决的情况下叠加了一层问题。这下Pico彻底变砖头了!

三.解决办法

        作者不服气,继续搜索英文论坛,找到一篇文章提到:如果你在Zadig里搞坏了东西应该怎么恢复,原文点这里,感谢这位有心的作者。其实很简单,只要按着BOOTSEL按键再插USB口进入bootloader模式,然后在设备管理器里找到RP2 boot(interface0)的那一项,然后彻底卸载掉,重新拔插就会自动安装正确的驱动。也许这是常规操作,反正作者当时想不到。这就又回到了上一层问题:normal模式下设备管理器不识别开发板。

        作者继续找解决办法,以为还是驱动问题,设备管理器不识别可不就是驱动问题吗?作者还试了各种在设备管理器里手动安装过时驱动的办法,都是铩羽而归。一次不经意间作者看到MicroPython论坛里几个大佬版主在解答新手提出的main函数停不下来怎么重置Pico的问题时,发现版主已经准备了一个.uf2文件(文件包点这里,再次感谢),拖到U盘就可以直接清除存储器的程序。抱着试试看的想法,作者把文件下载下来,解压,再拖入U盘,重启后居然可以识别了。。。这久违的Pi Pico Serial Port(COM#)。

         接着再次进入bootloader模式,拖入最新的MicroPython.uf2文件(文件点这里),重启进入normal模式,设备管理器正常识别,用thonny连接一切正常。谢天谢地!

四.写在后面

        经过这次踩坑,作者也有一点点思考。

        1.找解决方法时不能着急,抓着一根救命稻草就抓着不放,也不看适用条件,说不定会误入歧途。看完前因后果,合适了再试,慢点才更快。

        2.解决问题不能光看现象的表面,比如设备管理器不识别开发板,不一定是驱动问题,会不会是前面的异常操作(main程序停不下来)导致的?

        3.玩开源软硬件,生态很重要,缺乏相关资料,遇到问题也是毫无头绪。这也提醒我们开发者要多分享经验心得,不要总觉得没必要,或者懒得写。动动键盘写出来,既总结了自己的经验,加深理解,又帮助了别人,何乐而不为呢?

最后附上MicroPython论坛链接,人生苦短,我用python! MicroPython Forum - Forum

  • 16
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
树莓派Pico开发板可以使用Arduino IDE进行编程。以下是使用Arduino IDE进行树莓派Pico开发板编程的步骤: 1. 安装Arduino IDE:首先,您需要下载并安装Arduino IDE。您可以从Arduino官方网站上下载适用于您的操作系统的最新版本。 2. 安装RP2040支持库:树莓派Pico开发板使用RP2040芯片,因此您需要安装RP2040支持库。在Arduino IDE中,打开“工具”菜单,选择“开发板”子菜单,然后选择“开发板管理器”。在搜索栏中输入“RP2040”,找到“Arduino Mbed OS RP2040 Boards”并点击“安装”。 3. 配置开发板:在Arduino IDE中,打开“工具”菜单,选择“开发板”子菜单,然后选择“Raspberry Pi Pico”。接下来,选择正确的端口和上传速度。 4. 编写代码:在Arduino IDE中,打开一个新的空白文件,编写您的树莓派Pico开发板的Arduino代码。您可以使用Arduino语言和库来编写代码,就像在其他Arduino开发板上一样。 5. 上传代码:将树莓派Pico开发板连接到计算机,并确保选择了正确的端口。然后,点击Arduino IDE工具栏上的“上传”按钮,将代码上传到树莓派Pico开发板上。 请注意,树莓派Pico开发板与传统的Arduino开发板略有不同,因此某些功能和库可能不可用或需要特殊配置。您可以参考树莓派Pico开发板的文档和示例代码,以了解更多关于使用Arduino IDE进行树莓派Pico开发板编程的详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值