uart串口通讯问题
-
Arduino端
int incomingByte; void setup() { Serial.begin(19200); } void loop() { incomingByte=Serial.read(); Serial.println(incomingByte); }
OpenMv端
import sensor, image, time, math import json from pyb import UART uart = UART(3, 19200) while(True): uart.writechar(1) time.sleep(1000)
连接的是两个板子的TX RX
Arduino 串口监视器显示乱码- 请问uart.writechar(),uart.write()可以向串口发送单独的数字或数组吗?
- 在未使用json格式的数据时arduino端是否需要添加例程中的解析代码
解析程序
不是很懂该如何操作串口通讯,为啥都是乱码...
-
用示波器测p4端,示波器显示并不是矩形波还是杂波。
uart我认为的是按照0101 这种高低电平变化来传数据,不知道为什么 uart.writechar(1) 是杂波.
-
您好,还是这个问题,我发现显示乱码是因为我串口监视器的波特率没有调整好,调整好后(将波特率统一为19200)发现openmv通过usb转ttl这个调试器可以成功发送字节,但连接上arduino的TX RX后 串口监视器里只能输出-1
代码如下
int incomingByte; void setup() { Serial.begin(19200); } void loop() { incomingByte=Serial.read(); Serial.println(incomingByte); }
import sensor, image, time, math import json from pyb import UART uart = UART(3, 19200) while(True): uart.writechar(50) time.sleep(10000)
这里我看了您的教程发现uart.writechar()是发送一个字节,那么50对应的应该是数字2.
通过助手发现是对的
但是两个板子通信就不行了
请问怎么解决谢谢!
-
在Arduino端 将字符类型由int 改为char 就成乱码了....
-
https://www.arduino.cc/reference/en/language/functions/communication/serial/read/
根据Arduino的文档,如果什么都没有,就返回-1
Returns
The first byte of incoming serial data available (or -1 if no data is available) - int.Example Code
int incomingByte = 0; // for incoming serial data void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps } void loop() { // send data only when you receive data: if (Serial.available() > 0) { // read the incoming byte: incomingByte = Serial.read(); // say what you got: Serial.print("I received: "); Serial.println(incomingByte, DEC); } }
-
@kidswong999 谢谢 这个问题我解决了,现在可以发一个字节的数据了,但是我需要的是发送一个数组,我看您回复列表数据时提到了uart.write() 可以发送数组
uart怎么发送列表数据import sensor, image, time, math import json from pyb import UART uart = UART(3, 9600) data = bytearray([0xFF, 0xFE, 0xFF, 0xFF, 0x1A, 0x4E]) while(True): uart.write(data)
这个我接上串口助手看到是 FF FE FF FF 1A 4E
如果我想在arduino端接收这个数据,该如何下手呢?
数组传送的过程中是否包含了“ ”(空格)呢
-
和上面一样的代码