Как изменить биты четности и стоп-бит в KL25Z128 и C #? - PullRequest
0 голосов
/ 18 июня 2019

Я попытался настроить 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 - помечать конец «предложения».

...