.
.
openmv代码:
from pyb import UART
uart = UART(3,9600) #定义串口3变量(openmv上的串口P4 TX、 P5 RX对应串口3)
uart.init(9600, bits=8, parity=None, stop=1) # init with given parameters
while(True):
if uart.any(): #如果有信息
B = uart.read()#读取二进制码
print(B)
if B==b'1':#如果二进制码是字符‘1’的二进制码
print("1")
uart.write("12")
arduino端代码:使用的是mega2560文章来源:https://www.toymoban.com/news/detail-630173.html
void setup() {
//Serial.begin(9600);//UART0:对应引脚RX(0),TX(1)
//Serial1.begin(9600);//UART1:对应引脚RX(19),TX(18)
//Serial2.begin(9600);//UART2:对应引脚RX(17),TX(16)
Serial3.begin(9600);//连接openmv,对应引脚UART3:RX(15),TX(14)
//这里与openmv连接的是UART3,尽量不要用UART0.因为烧录程序的时候用的
//也是uart0,如果你占用了的话就会烧录不了程序,得将连接openmv的线断开
//才可以上传程序。
//openmv的TX连接arduino的RX,openmv的RX连接arduino的TX
}
void loop() {
int inData1,inData2,inData3;
while(Serial3.read()>=0);//清除缓存
Serial3.write(0x31);//发送开启指令(二进制的字符1,ASCII码为49)
while(Serial3.available()==0);//等待信号传输
//返回缓冲区可读取的字节数
if(Serial3.available())//接收到openmv发来的字符串
{
inData1=Serial3.read();//inData1=49(字符1)
inData2=Serial3.read();//inData2=50(字符2)
inData3=Serial3.read();//inData3=-1(无数据)
//Serial3.read();每次只读取一个字符,没有数据时返回-1
while(Serial3.read()>=0);//清除缓存区数据
}
}
注意:连接openmv和arduino的时候要共地才能正常收发信息。文章来源地址https://www.toymoban.com/news/detail-630173.html
到了这里,关于【arduino】 arduino与openmv的简单串口通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!