BNO055 ненадежен при запуске, WRONG_START_BYTE ошибки? - PullRequest
0 голосов
/ 23 января 2020

Я работал с сенсорной микросхемой BNO055 в режиме IMU. Я использую библиотеку BOSCH (не Adafruit) с помощью некоторых функций-оболочек, которые я написал. Я читаю значения Quaternion через UART, и у меня нет проблем с получением надежных данных, если их предоставляет чип. Однако, очень часто, когда я запускаю программу, я сталкиваюсь с одной из следующих ситуаций:

1) Попытки чтения с микросхемы возвращают WRONG_START_BYTE ошибок при каждом чтении, так как чтение является просто циклическим потоком это продолжается до тех пор, пока я не выйду из приложения.

2) Я получаю одну ошибку RECEIVE_CHARACTER_TIMEOUT перед входом в вышеуказанное состояние циклического WRONG_START_BYTE.

3) Я получаю WRONG_START_BYTE ошибки до того, как некоторые неожиданные WRITE_SUCCESS ответы, а затем продолжить чтение, и я могу только предположить, что это данные, которые больше не читаются с правильным смещением, поскольку они просто возвращают неизвестные ошибки (считываемые данные не соответствуют ожидаемым значениям сообщений ответа как изложено в таблице данных).

Такое поведение было очень непредсказуемым и, как я уже говорил, происходит только изредка, но достаточно часто, чтобы вызывать серьезную проблему надежности моего приложения. Это также означает, что отладка этой ошибки была очень трудной, поскольку я не могу последовательно воспроизвести поведение.

Есть идеи, что может быть причиной этого? Рады предоставить больше информации по запросу!

Заранее спасибо!

...