IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 树莓派Raspberry Pi Pico开发板踩坑:重置后设备管理器各种不识别,未知设备/unknown device -> 正文阅读

[嵌入式]树莓派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

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:38:55  更:2022-01-17 11:40:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 2:08:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码