【问题标题】:Intel Edison and NodeJS serial port communication: I am receiving strange charactersIntel Edison 和NodeJS 串口通信:我收到奇怪的字符
【发布时间】:2014-12-22 04:49:30
【问题描述】:

我有一个 FTDI 连接到我的 PC,并且 FTDI 连接到 Intel Edison Arduino 分线板 0RX 和 1TX 引脚。

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

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

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

然后回显:

Nodejs 代码:

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);  
  }  
});

然后我执行了:
节点 uart.js

即使我没有向 Intel Edison 发送字符,我也会收到奇怪的字符
奇怪的字符:

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

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

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

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

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

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

【问题讨论】:

    标签: node.js serial-port intel-edison


    【解决方案1】:

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

     var m = require('mraa');
     var uart = new m.Uart(0);
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多