Я попытался настроить KL25Z128 для работы с битом четности и стоп-битом в соответствии с моим кодом C #.
Кажется, все хорошо, и регистры были изменены, а также последовательный порт на C #, но я все еще не могу ничего поделать с коммуникацией KL25Z128 и C #.
постскриптум все хорошо, если я не изменю четность и стоп-бит. Даже когда я изменяю скорость передачи, он работает нормально.
Этот код в микропроцессоре:
if (nBit==2)
UART0_BDH |= UART0_BDH_SBNS_MASK; //2 stop bit
else
UART0_BDH &= ~UART0_BDH_SBNS_MASK; //1 stop bits
//None=0 / Even=1 / Odd=2
switch (Parity){
case 0:
UART0_C1 &= ~UART0_C1_PE_MASK;
break;
case 1:
UART0_C1 |= UART0_C1_PE_MASK;
UART0_C1 &= ~UART0_C1_PT_MASK;
break;
case 2:
UART0_C1 |= UART0_C1_PE_MASK;
UART0_C1 |= UART0_C1_PT_MASK;
break;
}
Этот код из C #:
// In Naveh configuration
mySerialPort.Write("connect config " + BaudRateBox.Text + " " + StopBitBox.Text + " " + parity + "$");
System.Threading.Thread.Sleep(100);
mySerialPort.Close();
mySerialPort.BaudRate = Convert.ToInt32(BaudRateBox.Text);
mySerialPort.PortName = COMbox.Text;
mySerialPort.Parity = (Parity)Enum.Parse(typeof(Parity), ParityBox.Items[ParityBox.SelectedIndex].ToString());
mySerialPort.StopBits = (StopBits)Enum.Parse(typeof(StopBits), StopBitBox.Items[StopBitBox.SelectedIndex].ToString());
mySerialPort.Open();
mySerialPort.Write("$");
System.Threading.Thread.Sleep(1000); // wait till data transmited
Messege = mySerialPort.ReadExisting().ToString();
mySerialPort.Close();
*** $ char - помечать конец «предложения».