Сенсор газов на 8 датчиков 0) библиотека для внешнего дисплея взята вот у этого чувака: https://github.com/olikraus/dogm128/wiki/dogm128 и переделана для работы с STM32
- все пакеты данных которые будут пересылаться определяются в заголовках без первого байта (или даже слова) длины и без 2 байт контрольной суммы в конце. передатчик сам поместит эти данные при посылке.
- Переименовал проект в stm32_sens
- Добавил файлы для псевдо eeprom
- Буфер приема содержит только Payload - нужные данные, команда идет отдельно
- IAR версии 6.50 стирает опции компилятора, которые сделаны в версии 7.50 -
А мне нужно по работе компилировать и российские процы.
Для компиляции stm32f429 взять более свежий IAR.например IAR-7.50 - поставил для проверки в Windows программу codeguard - заменил "плохую" функцию gmtime на gmtime32_s, которая вызывается из DLL
- Добавил запись/чтение пачки данных из EEPROM в обе программы
- Добавил команды "Старт"/"Стоп" измерений, пока данные читаются в никуда, но буду выводить в программу Windows
- константы передаются и принимаются медленно - выскакивает exeption заменил на чтение до таймаута в proto.cpp
- добавил запись регистров LMP91000 в EERPOM
- добавил запись параметров по команде "Старт"
- Добавил для тестирования: запись в микросхему параметров и чтение из нее.
- тестовая программа для тестирования LMP91k
- тестовая программа для тестирования сенсора с выходом UART
- Добавляю опрос сенсора с выходом на UART
- Сенсор с выводом UART работает. Опрос раз в секунду, необходимо переделать КА приема, иногда сбоит
- Неправильно стояла системная частота. 164 вместо 168. Частота генератора (кварца) ставится в 2-х местах в системных файлах, поэтому дефиницией указывать HSE_VALUE=8000000!!!
- Переделал программу для тестирования в Windows. Заменил все функции, но все равно иногда сбоит. Попробовать в Windows 7
- Добавил enum как описание статусов сенсоров
- Проверить eeprom_emul на счет адресов
- Сделал загрузчик, пока нужно обращать внимание на его работу. Как заплатку перенес перестановку векторов ПЕРЕД запуском scheduler. Иначе в самом начале работы происходит переключение контекста
- Уменьшил размер приемного буфера VCP до 512.
- Добавил DEV_ADDR в статус, куда записываю время компиляции и версию ПО
- Добавил ф-ю get_com_time() и строку в опциях IAR "touch userfunc.c"
- Добавил драйвер клавиатуры 2x4 в папке library
- Сделал драйвер клавиатуры. Подцепляю меню.
- Сделал меню по образцу от Milandr
- Сделал русские шрифты в формате koi8. Добавил функцию перекодировки
- Убираю пункт меню "Return", так как для этого есть кнопка
- Сделал меню "настройка даты и времени"
- Сделал меню "настройки каналов (a)"
- Сделал меню "настройки НАСОСА"
- Сделал меню "настройки громкости"
- Сделал вывод формулы. Цифры стоят ниже букв
- Перенес параметры канала из menu.c в sensor.c
- Добавил запуск каналов, заменил heap2.c на heap3.c
- Поменял выводы CD и Reset дисплея с PA2 и PA3 на PB0 и PB1 соответсвенно
- Сделал меню "Измерения", пока не наполнял данными, так как места для 8 каналов сразу не хватает
- Сделал "Запуск".
- Выключеные сенсоры не отображаются
- Добавил вывод в милливольтах
- Необходимо сделать измерения dynament раз в секунду. Другие датчики 5 раз в секунду
- Добавил работу с VCP - отображение на экране "Работа с VCP" и блокировка клавиатуры в этот момент
- Добавил вывод в mV АЦП для настройки. Выводятся данные АЦП, преобразованные в милливольты
- Поменял бит статуса "нет SD" на "VCP CONNECTED"
- Добавил ввод коэффициентов усиление и смещение
- Добавил "Обнуление всех каналов"
- Добавил запись регистров lmp91k с клавиатуры. Режим "Доп. настройки"
- Изменил опеделение printf() на log_printf()
- Поправил перевод величин. Изменил часы: по 10 секунд выводится попеременно время и дата
- Настроил датчик кислорода, нужно сделать калибровку с клавиатуры мин. по двум точкам
- вытащил константы из math.c пока нет датчика давления и температуры
- восстановил VCP функции на чужой плате. Не работает RTC- не разведено
- Нужно сделать выключение при выходе их режима измерений или делать FET Short
- Проверить посылаемые в I2C настройки
- вызов функции USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); вызывает проблемы при загрузки - очистить flash контроллера!