0

我有一个 FTDI 连接到我的 PC 并且 FTDI 连接到一个英特尔爱迪生 Arduino 分线板 0RX 和 1TX 引脚。

串行引脚连接:
Edison TX ------> FTDI RX
Edison RX ------> FTDI TX

要编辑英特尔 Edisons GPIO,我遵循了第一篇文章中的正确答案:
https ://communities.intel.com/message/265411#265411

要查看我执行的 GPIO 配置:
cat /sys/kernel/debug/gpio

然后回响:
通用输入输出接口

节点代码:

var SerialPort = require("serialport").SerialPort;  
var port = "/dev/ttyMFD1";  
var serialPort = new SerialPort(port, {  
  baudrate: 9600  
}, false);  

console.log("Open port: "+ port);  
serialPort.open(function (error) {  
  if (error) {  
    console.log('Failed to open: '+error);  
  } else {  
    console.log('open');  
    serialPort.on('data', function(data) {  
      console.log('data received: ' + data);  
    });  
    //write data to serial port every second  
    var counter = 90;  
    setInterval(function () {  
      serialPort.write(String(counter)+ "\r\n", function(err) {  
        if(err) {  
          console.log('err ' + err);  
        }else{  
          console.log('Writing data ');  
        }  
      });  
      counter++;  
      if(counter>100)  
        counter =90;  
    }, 1000);  
  }  
});

然后我执行:
node uart.js

即使我没有向 Intel Edison
Strange 字符发送字符,我也会收到奇怪的字符:
在此处输入图像描述

我不确定我的 nodejs 脚本是否导致任何问题,所以我执行了: cat /dev/ttyMFD1
即使我没有向英特尔爱迪生发送数据,它也会发出相同的奇怪字符。
猫命令

我不知道为什么当我不向英特尔爱迪生发送数据时会收到奇怪的字符,或者如何阻止这种情况的发生。我不确定我的 GPIO 配置是否正确,或者是噪音还是什么......?我需要做什么来修复/解决此问题?

为了进一步解决这个问题,我在 serialPort on 函数中添加了以下代码片段:

var s = JSON.stringify(data);
console.log ("data: " + s);

该代码产生:
[255,255,255,255]

更新
问题似乎与 setInterval 函数有关。我删除了设置的间隔,并为测试实现了一个 for 循环。该循环进行了 10 轮成功发送字符而没有接收到垃圾字符。

4

2 回答 2

1

为了增强您的代码,您可以使用 MRAA 启用 PIN0/PIN1 用于 UART 使用 (TX/RX),而无需从命令 shell 进行设置

 var m = require('mraa');
 var uart = new m.Uart(0);
于 2015-02-08T14:22:41.100 回答
0

奇怪的字符是由于我的一个非常愚蠢的错误造成的。我忘记将 FTDI 板的 GND 连接到 Intel Edison 的 GND。一旦我将 GND 连接在一起,奇怪的字符就停止了。

于 2015-05-26T07:29:33.703 回答