Чтение сериала некрасивым способом
- Войдите на сайт для отправки комментариев
Ср, 27/10/2021 - 14:46
Помогите сделать код более правильным. У меня он работает, хотя не должен был бы...
Главное, что переключатель по разным стартовым кодам срабатывал по-разному
void loop() {
while (FLink == 1) // пока не получим код END 134
{
if (Serial.available() > 0)
{
byte ff = Serial.read();
switch (ff)
{
case 131: // начало чтения
for (int u = 0; u < EEPROM_BYTES_COUNT; u++)
{
body[u] = Serial.read();
}
break;
case 134:
FLink = 0;
break;
}
}
}
}
Программа одноразовая? Как инициируется FLink?
Flink взводится кнопкой приемного устройства, как готовность к обмену.
Передатчик может посылать "стартовые" коды разные, по которым происходят разные функции в приемнике. Также передатчик заканчивает обмен по коду END
Проверять наличие данных (
Serial.available()) надо перед каждымSerial.read();Насчет "красивости" - и задача довольно туманно описана и полного кода нет.
Вот это не глючило и выглядит +/- компактно.
DISCLAIMER: THIS CODE IS SUPPLIES "AS IS" WITHOUT ANY WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED.
упд: все непредусмотренные символы эта херня пропускает.