Я хотел бы показать значения АЦП на моем ЖК-экране на плате stm32f746G - DISCO . Основная проблема заключается в интеграции программного обеспечения TouchGFX. Это создает файлы модели, представления и презентатора, необходимые для вывода виджетов и подстановочных знаков. Я считаю, что правильно установил свой вывод АЦП, PF10, так как я могу получить значение АЦП в main.cpp, используя:
while (1)
{
HAL_ADC_Start(&hadc3);
HAL_ADC_PollForConversion(&hadc3, 500);
hullVoltage = HAL_ADC_GetValue(&hadc3)*0.00080586;
HAL_Delay(1000);
}
Но моя главная цель - показать это на моем ЖК-экране. У меня есть настройка touchGFX, где я могу ввести плавающий символ с подстановочным знаком в View.cpp. Например:
void Monitor_ScreenView::handleTickEvent()
{
Unicode::snprintfFloat(textArea2Buffer, 4, "%f", 3.14f);
textArea2.invalidate();
}
Я покажу вам мои cpp файлы моделей, представлений и презентаторов, чтобы продемонстрировать, где находится моя проблема.
model.cpp
#include <gui/model/Model.hpp>
#include <gui/model/ModelListener.hpp>
#ifndef SIMULATOR
#include "stm32746g_discovery.h"
#endif
void Model::getHullVoltage()
{
HAL_ADC_Start(&hadc3);
HAL_ADC_PollForConversion(&hadc3, 500);
hullVoltage = HAL_ADC_GetValue(&hadc3);
}
View.cpp
#include <gui/monitor_screen_screen/Monitor_ScreenView.hpp>
#include <gui/model/Model.hpp>
#ifndef SIMULATOR
#include "stm32746g_discovery.h"
#endif
void Monitor_ScreenView::handleTickEvent()
{
Unicode::snprintfFloat(textArea2Buffer, 4, "%f", presenter->getHullVoltage());
textArea2.invalidate();
}
Presenter.cpp
#include <gui/monitor_screen_screen/Monitor_ScreenView.hpp>
#include <gui/monitor_screen_screen/Monitor_ScreenPresenter.hpp>
// my functions
float Monitor_ScreenPresenter::getHullVoltage()
{
return(model->hullVoltage);
}
Единственная ошибка, которую я получаю из этой сборкиis "hadc3 не был объявлен в этой области" из model.cpp.
Я был бы очень любезен, если бы мог получить какую-либо информацию из моего кода. Помимо этого, мой код работает, так как я могу включать и выключать светодиод с помощью кнопки на сенсорном экране, я могу печатать плавающее на экране, где я хочу, и я могу получить значение АЦПв main.cpp. Мне просто нужно, чтобы он показывал на экране каждый тик.