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.