本帖最后由 风醒吹梦忱 于 2022-9-22 13:42 编辑
想实现的功能:
1.显示屏对Arduino MEGA2560发送指令;
2.Arduino MEGA2560将指令显示到电脑上.
出现的问题:
显示屏发送的数据为16进制:按钮开时发送 '4E' ,关发送'46'.对应字符为'N' 和'F'.
显示屏直连电脑,输出没问题,字符串显示为"N"和"F",十六进制显示为'4E'和'46'.
显示屏发送给Arduino后,Arduino通过如下代码发送至电脑显示,变为','和'.'十六进制显示为'2C'和'2E'.
Arduino代码如下:
- const int bufferLength = 10; // 定义缓存大小为10个字节
- char serialBuffer[bufferLength];// 建立字符数组用于缓存
- void setup() {
- // 启动串口通讯
- Serial.begin(115200);
- Serial1.begin(115200);
- Serial.println();
- }
- void loop() {
- if (Serial1.available()) { // 当串口接收到信息后
- Serial1.readBytes(serialBuffer, bufferLength);// 将接收到的信息使用readBytes读取
- for (int i = 0; i < bufferLength; i++) { // 然后通过串口监视器输出readBytes
- Serial.print(serialBuffer[i]); // 函数所读取的信息
- }
- }
- }
复制代码
测试结果如下:
请问这个是什么原因? |