Добрый день!
Требуется передать с STM на ПК массив чисел (да хотя бы просто число)
HAL_UART_Transmit(&huart1, str3, strlen(str3), 100);} При передаче заранее прописанной строки все проходит и отображается в Visual Studio :
string vlag = serialPort1.ReadLine();
Invoke(new Action(() => { textBox3.Text = vlag; }));
Когда пытаюсь передать массив чисел (число) - ничего не приходит. Уже и так и сяк преобразовывал.
Может кто нибудь фрагмент рабочего кода показать как преобразовать массив uint_16 в строку для передачи.
Возможно это простой вопрос, но рабочего ответа пока не нашел
Передача массива чисел в Visual Studio
- linux_rulezz
- Вымогатель припоя
- Сообщения: 606
- Зарегистрирован: Пн сен 15, 2025 08:43:23
- Откуда: Маленький СССР посреди шариатской республики
Re: Передача массива чисел в Visual Studio
Просто сериализовать и передавать в текстовом виде. Я все сериализую, отлично работает. Например, передача с МК и прием на ПК.
Массив можно передавать через запятую. Например, так:
В двоичном виде передаю лишь если скорость нужна, как, например, здесь.
// а за калокуб и маздай - однозначно минус в "карму"!
Массив можно передавать через запятую. Например, так:
Код: Выделить всё
arrsize=100500
array=1,2,3,4,...// а за калокуб и маздай - однозначно минус в "карму"!
Windows must die!
Re: Передача массива чисел в Visual Studio
ну так вроде разобрался. Но вот возник еще нюанс:
при приеме Termite отображает правильную последовательность, например : 52 03 de 03 de 00 52 03 52 03 da 02 da 02 da 02
А вот в VS приходит: 52 03 3f 03 00 3f 52 03 52 03 3f 02 3f 02 3f 02
То есть правильно доходят hex числа в которых не букв (d,e,a....). Какая причина тут может быть?
"минус" в карму ставить не обязательно. Я не программист и пользуюсь тем что есть
при приеме Termite отображает правильную последовательность, например : 52 03 de 03 de 00 52 03 52 03 da 02 da 02 da 02
А вот в VS приходит: 52 03 3f 03 00 3f 52 03 52 03 3f 02 3f 02 3f 02
То есть правильно доходят hex числа в которых не букв (d,e,a....). Какая причина тут может быть?
"минус" в карму ставить не обязательно. Я не программист и пользуюсь тем что есть
Re: Передача массива чисел в Visual Studio
Разобрался.
При использовании Readline искажались байты с 1 в старшем бите (видимо за отрицательные принимались)
Пришлось использовать serialPort1.Read
При использовании Readline искажались байты с 1 в старшем бите (видимо за отрицательные принимались)
Пришлось использовать serialPort1.Read