C#, получение неправильного значения через последовательный порт
То, что я пытаюсь сделать, - это получить строковые данные из моего МК, нажав на него кнопку, но то, что я получаю в своей программе c#, это некоторые случайные числа(картинка прилагается).
http://imgur.com/a/79Pbm
Что я уже пробовал:
Например, я хочу получить "5", но вместо него получаю" 650683". На стороне mk все работает, я проверил это с помощью эмулятора, так что проблема в коде c#. Спасибо и дальше.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; namespace WindowsFormsApplication8 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) // Here i send a byte to MK { var dataByte = new byte[] { 0x00 }; serialPort1.Write(dataByte, 0, 1); } private void textBox1_TextChanged(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) // choosing a right com port { serialPort1.PortName = textBox1.Text; serialPort1.BaudRate = Convert.ToInt32(textBox2.Text); } int rs; private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) // Data Receive Handler { try { rs = serialPort1.ReadByte(); this.Invoke(new EventHandler(type)); } catch (System.TimeoutException) { } } void type(object s,EventArgs e) // receive data { textBox4.Text += rs.ToString(); } private void button3_Click(object sender, EventArgs e) // OPen port { serialPort1.Open(); } private void button4_Click(object sender, EventArgs e) // Close port { serialPort1.Close(); } } }
[no name]
Как вы подтверждаете правильность бодрейта и других настроек?
1. я бы проверил, что вы получаете данные, как вы ожидаете, на конце ПК с помощью шпатлевки http://www.chiark.greenend.org.uk/~sgtatham / шпатлевка/
2. Когда вы получите 1. working, убедитесь, что вы установили последовательный порт точно на те же настройки в своем коде c#. Отладчик поможет.