前言
在这个 Wi-Fi 横飞、蓝牙狂飙、5G 霸榜的时代,很多人以为串口早就退休,住进硬件老年公寓里晒太阳、喝热茶、讲讲 SPI 那些年……结果大错特错!它仍是工业设备、传感器、单片机等“老派江湖”的顶梁柱。
今天,我们就用 Python 与 pySerial 模块,一起踏上穿越“COM3”星球的神秘旅程。不必精通电路,不用焊接芯片,哪怕只会复制粘贴,也能让你亲眼见证一根朴素串口线如何在代码中起舞、与设备对话。让传统通讯方式,在你指尖焕发新生!
简介
Python 的 serial 模块堪称连接硬件设备的神兵利器,无需复杂操作,只靠三行代码便可轻松读取来自 STM32、Arduino、传感器,甚至火星探测器(只要它开通串口服务)的数据。既能搞定工业级任务,也能胜任日常玩具项目,堪称软硬通吃的万能接口桥梁。无论你是资深工程师,还是初学者,只要掌握这招,硬件设备都得乖乖开口说话。
操作步骤
1.安装 pySerial

不然你只能靠玄学和祈祷去连接 COM3,工程师的尊严将岌岌可危。
2.连接设备
把你珍藏多年的 Arduino、STM32 或串口模块插进电脑,Windows 会神秘兮兮地分配一个“COM口”,比如 COM3,看起来像房间号,其实是通信入口。
3.打开串口

别忘改成你自家的 COM 端口号,毕竟偷用别人的串口就像蹭邻居 WiFi,不太厚道。
4.读取数据
使用 readline() 可读取一整行,直到遇见换行符,最适合配合 Arduino 的 Serial.println() 或 STM32 的串口输出。
5.解码并清洗数据
decode() 负责把机器语言翻译成人话,rstrip() 则礼貌地请换行符离席,干干净净才好下饭。
流程图

搞笑故事
有一次,我信心满满地连接上一个串口设备,心想这回必成,稳得一批。Python 脚本早已蓄势待发,只等我敲下回车键。运行之后,终端窗口瞬间刷出一堆神秘乱码,看起来像这样:

我当场愣住,开始胡思乱想:难道我无意间侵入了某个黑客星球团队的秘密通讯频道?设备刚上线,黑客们就锁定我 IP?亦或我不小心窃取了某个黑客组织的核心数据?总之,那串乱码看起来极其不凡,仿佛下一秒就会弹出“你已被选中”字样。
就在我准备截图发朋友圈炫耀时,低头一瞥,发现波特率写成了 115200,而设备其实设定在 9600。那一刻,真相如雷贯耳:不是外星语,是我自己频率没对上。
此后我悟出一个硬核道理:串口这玩意儿,不讲武德但讲默契。波特率就像谈恋爱,频率不对,说什么都白搭。你发一句“我是星际编程喵”,对方却收成“⸮⸮⸮⸮⸮⸮⸮⸮”,再深的感情也只剩尴尬沉默。
自那次起,我养成一个好习惯:接串口前,先检查波特率。不求天长地久,但求你发我收、你说我懂。毕竟工程世界里,哪怕一个数字错位,也可能酿成一场“跨星球误会”。
适用场景
1.Arduino / STM32 / ESP32 串口通信
想让你的开发板与世界对话?串口通信就是你最可靠的“翻译官”。不管是 Arduino 还是 STM32,只要你配置好串口,它们立马开启与外部设备的亲密交流。
2.读取温湿度、GPS等传感器数据
通过串口读取各种传感器数据,实时监控温湿度、GPS 位置等重要信息,甚至可以在“失落的星球”上精确定位。
3.工业控制、PLC设备通讯
在工业自动化的世界里,串口是核心桥梁,PLC 控制系统可以通过串口与设备高效沟通,精确控制每一个动作。
4.串口调试终端工具开发
开发调试工具时,串口可以帮你轻松连接各类硬件,捕捉实时数据,让调试过程像呼吸一样简单。
5.模拟黑客电影里的“系统入侵界面”
对技术充满好奇的你,可以通过串口通信模拟电影里的黑客界面,轻松捕捉、分析设备输出,感受“黑客帝国”的刺激。
注意事项
1.COM口号别乱填
不知道设备在哪个端口?先别乱猜,打开设备管理器查清楚,避免踩雷。
2.波特率要匹配
设置的波特率不匹配?乱码宇宙欢迎你!一定要确保波特率一致,否则你接收到的将是外星语。
3.编码问题
有些设备使用的是 GBK 或其他编码格式,decode('utf-8') 可能会让你陷入无法解开的乱码迷宫。记得灵活调整,避免触发编码灾难。
4.资源释放
用完串口记得关闭,不然下次打开时你会发现“串口占用”的提示扑面而来,仿佛被困在时间漩涡。
5.别相信第一次读到的内容
很多设备开机后会先发一堆“欢迎语”,那不是你想要的数据,等到真正的数据到来之前耐心等候,别让欢迎词把你误导。
总结
串口虽然算是“老前辈”,但胜在稳定、精准、务实,从不炫技却总能稳稳干活。配合 Python 与 pySerial 模块,轻松实现与各类硬件设备的数据互动,无需烧录、驱动或调参,三行代码便能打开通往硬件世界的大门。技术再复杂,也能变得丝滑顺畅。送你一句江湖流传的至理名言:波特率不对,哪怕眼神再真诚,也只能擦肩而过。



















暂无评论内容