背景

心情烦躁,不写点文章感觉无法冷静。于是就稍稍总结了一下我自己在做串口通讯时踩过的坑。大部分都很基础,也许适合刚刚接触的新人。

实例

Windows驱动问题

目前市面上能买到的USB转TTL串口模块,其芯片多采用PL2302或CP2102。Windows官方提供的串口驱动不适用于这两种芯片,所以需要手动安装。

就给下驱动的链接,点击下载:

PL2303

CP2102

Arduino上传代码的问题

Arduino是可以直接使用标准串口上传代码的,不一定要使用USB接口。只要将USB转TTL串口模块连接至Arduino的标准串口即可。

但是!大部分Arduino都要冷启动以上传代码!也就是说,在上传之前,你要按住Arduino上的重置按钮,当Arduino IDE提示正在上传的时候,松开重置按钮,即可完成上传。

当然,不成功就多试几次。

USB转TTL模块的功率问题

有些模块的功率并不是很足,所以,像蓝牙模块、Wi-Fi模块,不一定能带得动。

软串口问题

Arduino单片机支持软串口,即虚拟两个数字引脚用于串口传输。

但是!软串口很鸡肋!实测9600的波特率就会出现大量传输错误,至于需要使用115200波特率的ESP8266模块,软串口根本无法胜任!曾在此纠结很久。

Arduino Mega倒是提供了4个硬件串口。

蓝牙串口模块供电问题

HC-05或HC-06模块的工作电压是3.3V,但是,这并不意味着你必须以3.3V供电。事实上,用3.3V供电很可能还会让蓝牙模块功率不足,甚至频繁断开连接的问题。