Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.

yxhu

Member Since 08 Jul 2015
Offline Last Active Aug 01 2015 02:47 AM
-----

#63574 Help on Netduino 2 Serial Communication to PC

Posted by yxhu on 18 July 2015 - 02:58 PM

Hi Chris,
 
I am new to this forums and this is my first post. Recently I have purchased a few ND2s. I setup a very small serial communication program and unfortunatey it didn't work as expected. Here is the setting:
 
On netduino, I am using COM4, the connection to the PC as:
 
ND            ----->  PC
 
SDA(RX)   ----     TX
SCL (TX)   ----     RX
 
 
Program runs on the ND:
 

private static SerialPort _serialPort;

public static void Main()
{
   _serialPort = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
   _serialPort.Open();

    System.Text.UTF8Encoding encoder = new System.Text.UTF8Encoding();
    byte[] bytesToSend  = encoder.GetBytes("abc");

    while(true){
       _serialPort.Write(bytesToSend, 0, bytesToSend.Length);
    }
}

 
 
Program runs on the PC:
 

public Program()
{
    _serialPort = new SerialPort();
    _serialPort.PortName     = "COM3";
    _serialPort.BaudRate     = 9600;
    _serialPort.DataBits     = 8;
    _serialPort.DiscardNull  = true;
    _serialPort.StopBits     = StopBits.One;
    _serialPort.Parity       = Parity.None;
    _serialPort.DataReceived += _serialPort_DataReceived;
    _serialPort.Open();
}

private void _serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
     var _buffer = new byte[_serialPort.BytesToRead];
      _serialPort.Read(_buffer, 0, _buffer.Length);

     Console.WriteLine(System.Text.ASCIIEncoding.UTF8.GetString(_buffer));
}

  
Basically, I wanted to let ND to keep sending string "abc" to the PC. After I have tried different Baud rates, i.e.  9600, 4800, 2400. I am always getting very wired result at PC end, please see the attached screenshot.

 

I suspect there might be the Baud rate mismatch. However, I have tripple checked my code, both sides have identical settings on the serial port.

 

I spent many hours googling with no luck.

 

 

On other weird thing was, I needed to set 'DiscardNull = true' on the PC end, otherwise I am getting massive '0x00' bytes from ND.

 

I am using VS2010, Micro Framework 4.2, Netdunio SDK 4.2.2.2. I started with VS2013, Micro Framework 4.3, and Netduino SDK 4.3.2.1, unforturnately I couldn't debug the program on ND. I always get error  "The debuging target is not in an initialized state; rebooting......", So I have reverted everything back to VS2010, then I could debug the program.

 

I have also attached the output from "Device capabilities" in the MSDeploy FYI.

 

 

 

 

 

 

 

 

Attached Files




home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.