Мне поручено написать приложение C# WPF для подключения к плате разработки Google Coral через порт отладки и потоковой передачи всех данных, которые плата выводит на экран Windows (например, TextBlock).
Я подписан на эта ссылка Microsoft для событий чтения. На данный момент, после того, как я устанавливаю соединение с платой, я вижу выходные данные в своем текстовом блоке, но они не в читаемом текстовом формате.
Что я ожидал:
U-Boot SPL 2019.04.1 (Jan 11 2021 - 20:43:00 +0000)
power_bd71837_init
Board id: 0
DDRINFO: start DRAM init
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from MMC1
hdr read sector 300, count=1
U-Boot 2019.04.1 (Jan 11 2021 - 20:43:00 +0000), Build: jenkins-enterprise.uboot -imx-1
CPU: Freescale i.MX8MQ rev2.1 1500 MHz (running at 1000 MHz)
CPU: Commercial temperature grade (0C to 95C) at 37C
Reset cause: POR
Model: Freescale i.MX8MQ Phanbell
DRAM: 4 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
BuildInfo:
- ATF
- U-Boot 2019.04.1
flash target is MMC:0
Net:
Warning: ethernet@30be0000 using MAC address from ROM
eth0: ethernet@30be0000
Fastboot: Normal
Normal Boot
Hit any key to stop autoboot: 0
2065 bytes read in 6 ms (335.9 KiB/s)
Что я на самом деле вижу в TextBlock:
Я проверяю BaudRate и другие настройки, кажется, все в порядке. Я знаю, что протокол UART отправляет данные как byte
, может ли кто-нибудь определить мой вывод, если тип данных неправильный? Если да, то нужно ли читать получение byte
и преобразовывать в читаемый текст?
Добавление моего кода
//Port setting
_serialPort.PortName = comPort.Name;
_serialPort.BaudRate = 115200;
_serialPort.Parity = Parity.None;
_serialPort.DataBits = 8;
_serialPort.StopBits = StopBits.One;
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.DtrEnable = true;
_serialPort.RtsEnable = true;
// Port Data Receiving method
_serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
_serialPort.Open();
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
this.Dispatcher.Invoke(() =>
{
TextBlock_Output.Text += indata;
});
};
Аппаратное подключение Я подключаю порт отладки Google Coral Board к своему компьютеру с Windows через разъем micro-USB (Coral Board) к USB (компьютер с Windows). Я обычно использую это соединение для отладки через COM-порт через Putty.
Благодарю вас!
mySerialPort.RtsEnable=true;
, так иmySerialPort.DtrEnable=true;
. Может быть полезно следующее: stackoverflow.com/questions/65957066/ - person user9938   schedule 21.07.2021_serialPort.Encoding
. Я считаю, что этот пост имеет отношение к моей проблеме: stackoverflow.com/questions/18698292/ - person Tony Nguyen   schedule 22.07.2021