| |
|
开发:
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例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |