Начал работать с матрицей MLX90640 на STM32F407VET6 при помощи библиотеки от производителя (
https://github.com/melexis/mlx90640-library/tree/master). При запуске считываются данные из EEPROM. Затем, при попытки их обработки функцией
MLX90640_ExtractParameters происходит
hardfault_handler. Обнаружил, с какого места появляется ошибка:
Код:
static int ExtractDeviatingPixels(uint16_t *eeData, paramsMLX90640 *mlx90640)
{
uint16_t pixCnt = 0;
uint16_t brokenPixCnt = 0;
uint16_t outlierPixCnt = 0;
int warn = 0;
int i;
for(pixCnt = 0; pixCnt<5; pixCnt++)
{
mlx90640->brokenPixels[pixCnt] = 0xFFFF; // ТУТ
mlx90640->outlierPixels[pixCnt] = 0xFFFF;
}
pixCnt = 0;
...
}
Заметил, что если добавить рядом в цикл
mlx90640->brokenPixels[0] = 0xFFFF;, то ошибка больше не выдается, но после этого I2C имеет флаг BUSY и дальнейшая работа с камерой невозможна