Hi everyone. I'm writing an application in C#. Does anyone know how to autoset the baud rate? For example, I have a device connected to one of the three UART ports. Let's say that the device is set at a fixed baud rate of 38400, 8 data bits, no parity, 1 stop bit. If I send it a char "R", it replies with a char 'R'. On the device, let's say that I keep 8 data bits, no parity, 1 stop bit. How do I make it so that when I open the application, it sets the baud rate so that both devices can talk to each other? I tried a for loop, but for some reason when I send 'R' at the wrong baud rate, the application on the mini2440 crashes.
Baud rate detector
I figured it out. If anyone's interested: private void ADC4_Load(object sender, EventArgs e) { int baud = 0; for (int i = 0; i < 9; i++) { switch (baud) { case 0: serialPort1.BaudRate = 300; break; case 1: serialPort1.BaudRate = 1200; break; case 2: serialPort1.BaudRate = 2400; break; case 3: serialPort1.BaudRate = 4800; break; case 4: serialPort1.BaudRate = 9600; break; case 5: serialPort1.BaudRate = 14400; break; case 6: serialPort1.BaudRate = 19200; break; case 7: serialPort1.BaudRate = 38400; break; case 8: serialPort1.BaudRate = 57600; break; case 9: serialPort1.BaudRate = 115200; break; } if (!serialPort1.IsOpen) { serialPort1.Open(); serialPort1.ReadTimeout = 3; } serialPort1.Write("R"); //figure out baud rate if (serial1Read(1) == "R") break; else serialPort1.Close(); baud++; Thread.Sleep(30); } switch (baud) { case 0: menuItem11.Checked = true; break; case 1:; menuItem12.Checked = true; break; case 2: menuItem13.Checked = true; break; case 3: menuItem14.Checked = true; break; case 4: menuItem15.Checked = true; break; case 5: menuItem16.Checked = true; break; case 6: menuItem17.Checked = true; break; case 7: menuItem18.Checked = true; break; case 8: menuItem19.Checked = true; break; case 9: menuItem20.Checked = true; break; } serialPort1.Close(); openserial(); }