PICO使用的是Arduino IDE开发的,之前也试过使用micropython,但是坑太多,很多解决方案找不到
使用Arduino操作PICO需要先安装主板驱动,可以再工具->开发板管理里面搜索pico进行安装,第一个结果就行,安装完毕后,将pico上的按钮按着不放,插入USB,然后就可以去上传代码。
关于串口通讯,我的通讯模块是正常的,指示灯也正常,在这之前,我已经通过电脑调试过F704UM模块,一切正常。
问题:后面我想通过F704UM的串口和PICO进行通讯,所以我在PICO的串口上倒腾了很多时间。。因为很多尝试都失败了,就是没法通讯
解决:最后使用的UART SER(16, 17, -1, -1); 竟然成功了,这里的16和17我原本以为是指得PIN,但是实际上指得是GPIO,为了方便调试,我将pico通过usb-ttl连接电脑进行测试,测试后可以正常通讯了,就是速度有点慢,可能是这个usb转ttl模块的问题
问题:随后我将PICO和F704UM的TX/RX连接,但是还是没法通讯,我就纳闷了,之前用usb-ttl连接的F704UM模块是正常的,现在换了个pico的串口又不行了,就出鬼,然后我将F704UM的串口和USB-TTL的串口连接,电源保持不变,发现还是真连接不上了,我怀疑是供电问题,文档上写着F704UM需要5v,2A的电源进行供电,我使用的是5v,2.5a的电源供电,却不行,我也不清楚啥问题,可能是这个充电头的问题,随后,我将电源移到usb-ttl的5v接口上就正常了
解决:这个我也不清楚,但是肯定得是,电源影响了串口通讯,模块的网络是正常的,一直在和服务器交互数据,所以如果遇到串口无法通讯一定要尝试更换电源,官方说5-12v,最好5v朝上更稳定。
通讯成功后发现速度还是蛮快的,比在电脑上调试还快些。
最后附上一些简单的转发代码:
#include "Arduino.h"
UART SER(16, 17, -1, -1);
void setup() {
SER.begin(115200);
Serial.begin(9600);
while (!SER) {
}
Serial.println("ready");
}
void loop() {
if (SER.available() > 0) {
Serial.println(SER.readStringUntil('\n'));
}
if (Serial.available() > 0) {
SER.println(Serial.readStringUntil('\n'));
}
delay(100);
}
还有就是readStringUntil('\n') 要比readString() 快很多。
|