./../
  I D :    ¾ÏÈ£ :    IDÀúÀå      ȸ¿ø°¡ÀÔ    ³×°Ô(ÁåÀå) ÂÊÁöº¸³»±â    ¸Þ¸ðÀå    °¢Á¾°è»ê±â    Ä÷¯ºü·¿    À̸ðƼÄÜ(ÇÁ·¹ÀÓ, »õâ)    º¸À¯Àåºñ
¸ñ·ÏÀ¸·Î °¡±â..
STM TouchGFX¼³°èÇÒ¶§ View°¡ main¿¡ Á¢±ÙÇÏ´Â ¼ø¼­ ±èÁ¾È£ | »èÁ¦Çϱâ

# LED¸¦ ÅÍÄ¡¿¡¼­ Á¦¾îÇÏ´Â ¿¹Á¦ ### 1. TouchGFX Designer ¼³Á¤ (À̺¥Æ® »ý¼º) 1. È­¸é¿¡ **Button** Ãß°¡ 2. Interactions ÅÇ¿¡¼­ **Add Interaction** Ŭ¸¯ 3. Trigger: **Button is clicked** 4. Action: **Call new virtual function** 5. Function Name: **`toggleLed`** ÀÔ·Â ÈÄ **Generate Code** Ŭ¸¯ --- ### 2. C ¾ð¾î ¿µ¿ª: Çϵå¿þ¾î Á¦¾î ÇÔ¼ö ÀÛ¼º (`main.c`) STM32 HAL Á¦¾î ÄÚµå´Â C++ ¿µ¿ªÀ¸·Î ³Ñ±âÁö ¾Ê°í `main.c`¿¡ ĸ½¶È­ÇÕ´Ï´Ù. **`Core/Src/main.c`** ```c /* USER CODE BEGIN 4 */ // TouchGFX¿¡¼­ È£ÃâÇÒ Çϵå¿þ¾î Á¦¾î ÇÔ¼ö void hw_ToggleLD1(void) { HAL_GPIO_TogglePin(GPIOI, GPIO_PIN_12); } /* USER CODE END 4 */ ``` --- ### 3. Model ¿µ¿ª: ¿ÜºÎ C ÇÔ¼ö ¿¬°á ¹× È£Ãâ (`Model.hpp` / `Model.cpp`) `main.h`¸¦ ÀÎŬ·çµåÇÏÁö ¾Ê°í, `extern "C"`¸¦ »ç¿ëÇÏ¿© `main.c`¿¡¼­ ¸¸µç ÇÔ¼ö¸¦ ¸µÅ·(Linking)ÇÕ´Ï´Ù. **`gui/include/gui/model/Model.hpp`** ```cpp #ifndef MODEL_HPP #define MODEL_HPP // 1. C ¾ð¾î·Î ÀÛ¼ºµÈ ¿ÜºÎ ÇÔ¼ö¸¦ C++ ÄÄÆÄÀÏ·¯°¡ ÀνÄÇÒ ¼ö ÀÖµµ·Ï ¼±¾ð extern "C" { void hw_ToggleLD1(void); } class ModelListener; class Model { public: Model(); void bind(ModelListener* listener) { modelListener = listener; } void tick(); // 2. Presenter¿¡¼­ È£ÃâµÉ ÇÔ¼ö ¼±¾ð void toggleLed(); protected: ModelListener* modelListener; }; #endif // MODEL_HPP ``` **`gui/src/model/Model.cpp`** ```cpp #include #include Model::Model() : modelListener(0) { } void Model::tick() { } // 3. ¿ÜºÎ C ÇÔ¼ö È£Ãâ void Model::toggleLed() { hw_ToggleLD1(); } ``` --- ### 4. Presenter ¿µ¿ª: View¿Í Model ¿¬°á (`Presenter.hpp` / `Presenter.cpp`) View¿¡¼­ ¿Ã¶ó¿Â ¸í·ÉÀ» Model·Î ³Ñ°ÜÁÝ´Ï´Ù. (È­¸é À̸§ÀÌ `Screen1`ÀÎ °æ¿ì) **`gui/include/gui/screen1_screen/Screen1Presenter.hpp`** ```cpp #ifndef SCREEN1PRESENTER_HPP #define SCREEN1PRESENTER_HPP #include #include using namespace touchgfx; class Screen1View; class Screen1Presenter : public touchgfx::Presenter, public ModelListener { public: Screen1Presenter(Screen1View& v); virtual void activate(); virtual void deactivate(); virtual ~Screen1Presenter() {} // View¿¡¼­ È£ÃâµÉ ÇÔ¼ö ¼±¾ð void toggleLed(); private: Screen1Presenter(); Screen1View& view; }; #endif // SCREEN1PRESENTER_HPP ``` **`gui/src/screen1_screen/Screen1Presenter.cpp`** ```cpp #include #include Screen1Presenter::Screen1Presenter(Screen1View& v) : view(v) { } void Screen1Presenter::activate() { } void Screen1Presenter::deactivate() { } // ModelÀÇ ÇÔ¼ö È£Ãâ void Screen1Presenter::toggleLed() { model->toggleLed(); } ``` --- ### 5. View ¿µ¿ª: UI À̺¥Æ® ¼ö½Å ¹× Àü´Þ (`View.hpp` / `View.cpp`) Designer¿¡¼­ »ý¼ºÇÑ °¡»ó ÇÔ¼ö¸¦ ½ÇÁ¦·Î ±¸ÇöÇÕ´Ï´Ù. **`gui/include/gui/screen1_screen/Screen1View.hpp`** ```cpp #ifndef SCREEN1VIEW_HPP #define SCREEN1VIEW_HPP #include #include class Screen1View : public Screen1ViewBase { public: Screen1View(); virtual ~Screen1View() {} virtual void setupScreen(); virtual void tearDownScreen(); // Designer¿¡¼­ ¼³Á¤ÇÑ °¡»ó ÇÔ¼ö ¿À¹ö¶óÀ̵ù virtual void toggleLed(); protected: }; #endif // SCREEN1VIEW_HPP ``` **`gui/src/screen1_screen/Screen1View.cpp`** ```cpp #include Screen1View::Screen1View() { } void Screen1View::setupScreen() { Screen1ViewBase::setupScreen(); } void Screen1View::tearDownScreen() { Screen1ViewBase::tearDownScreen(); } // ¹öư Ŭ¸¯ ½Ã È£ÃâµÇ¾î Presenter·Î ¸í·É Àü´Þ void Screen1View::toggleLed() { presenter->toggleLed(); } ```

÷¾ð ´Þ±â
À̸§ : ¾ÏÈ£ :
¹øÈ£    Á¦¸ñ...(÷¾ð) ÀÛ¼ºÀÏ Á¢¼Ó
xxx [°øÁö]ÀÚÀ¯°Ö·¯¸® µî·Ï ¿À·ù ¼öÁ¤ ¿Ï·á 2017-12-22 29413
xxx [°øÁö]ÀÚ·á½Ç ´Ù¿î·Îµå ¿À·ù ó¸® 2017-12-01 30048
xxx [°øÁö]ºñ³­, ±¤°í °Ô½Ã¹°À» ½Å°í, Â÷´Ü, »èÁ¦µË´Ï´Ù. 2005-06-26 26095
248 [M D]  STM TouchGFX¼³°èÇÒ¶§ main¿¡¼­ View¿¡ Á¢±ÙÇÏ´Â ¼ø¼­ 2026-08-16(ÀÏ) 7
247 [M D] > STM TouchGFX¼³°èÇÒ¶§ View°¡ main¿¡ Á¢±ÙÇÏ´Â ¼ø¼­ < 2026-08-16(ÀÏ) 12
246 [M D]  MCU Task°ü¸®ÇÒ¶§ ÇÊ¿äÇÑ ¼¼¸¶Æ÷¾î(Semaphore)¿Í ¹ÂÅØ½º(Mutex) 2026-08-09(ÀÏ) 41
245 [M D]  STM32F ¸¶ÀÌÄÄ °øºÎÇÒ¶§ RAM¿¡ ¿Ã·Á¼­ ½ÃÇèÇϱâ.(¼Óµµ ºü¸§) 2026-08-08(Åä) 34
244 [ÀϹÝ]  STM32F767°ú FreeRTOS¸¦ ÀÌ¿ëÇØ ¼³°èÇÒ¶§ Time base Source´Â? 2026-08-08(Åä) 27
243 [ÀϹÝ]  VSCode·Î STM32 °³¹ßÇÒ¶§ printf¿¡¼­ ½Ç¼ö Ãâ·Â ¾ÈµÇ¸é 2026-07-16(¸ñ) 931
242 [ÀϹÝ]  VisualStudioÀ¸·Î ¸¸µç ÇÁ·Î±×·¥ .net ¹öÀü ¿Ã¸®±â À§ÇØ 2026-07-02(¸ñ) 1140
241 [C#]  c# winform¿¡¼­ URL QR»ý¼º 2026-06-30(È­) 986
240 [ÀϹÝ]  VC ÄÄÆÄÀÏÇÒ¶§ ¼Ö·ù¼Ç Æú´õ¿¡ ÄÄÆÄÀÏµÈ ÆÄÀÏÀÌ »ý¼ºµÉ¶§ 2026-06-29(¿ù) 365
239 [XML]  IIS 8.0 ÀÌ»ó IP Â÷´Ü web.config ¼³Á¤ 2026-06-13(Åä) 93
238 [ÀϹÝ]  C#.net 6ÀÌ»ó ºôÆ®ÇÒ¶§ TargetFramework Æú´õ »ý±â´Â°Å ¾ø¾Ö±â 2026-04-16(¸ñ) 407
237 [ÀϹÝ]  windowsÀÇ °¢Á¾ ¿¡µðÅÍ¿¡¼­ ÇÑ±Û ÀԷ½ÿ¡ ¿Ï¼ºµÇ¾ß Ç¥±âµÇ´Â ¹®Á¦ 2026-04-10(±Ý) 395
236 [ÀϹÝ]  MPLab X 6.2¿¡¼­ ICD3 ¿¬°á ½ÇÆÐ°¡ ³ª¿Ã¶§ 2026-04-07(È­) 402
235 [ÀϹÝ]  Verolog HDL Operation (¿¬»êÀÚ) 2026-03-27(±Ý) 362
234 [ÀϹÝ]  Mac OS Sequoia¸¦ OCLP·Î ¼³Ä¡ÇßÀ»¶§ Chrome ¿À·ù ÇØ°á¹æ¹ý 2026-03-21(Åä) 627
233 [ÀϹÝ]  Mac OS Monterey ¹®Á¦°¡ ¹ß»ýÇ߱⠶§¹®¿¡ ÄÄÇ»Å͸¦ Á¾·áÇß½À´Ï´Ù ¸Þ¼¼Áö 2026-03-08(ÀÏ) 7600
232 [ÀϹÝ]  Windows 10,11 ³»Àå ÇÁ·Î±×·¥À¸·Î ·Î¿ì·¹¹ë Æ÷¸äÇϱâ 2026-02-10(È­) 1101
231 [ÀϹÝ]  XBOX ÄÁÆ®·Ñ·¯ Ȩ¹öư ´­·¶´õ´Ï ½ºÆÀÀÌ Àüüȭ¸éÀ¸·Î ¿­¸±¶§ ¸·±â 2026-02-07(Åä) 1226
230 [ÀϹÝ]  Git pushÇÏ·Á´Âµ¥ .gitignore Àû¿ëÀÌ ¾ÈµÉ¶§ 2026-02-04(¼ö) 827
229 [C#]  C# URL querystring ƯÁ¤ °ª °¡Á®¿À±â 2026-01-23(±Ý) 321
°Ë»ö :
Page : ÀÌÀü 1  2  3  4  5  6  7  8  9  10  11  12  ´ÙÀ½




Copyright 2003-2026 ¨Ï ±èÁ¾È£. All rights reserved. kimjongho.co.kr kimjongho.kr kimjongho.net kimjongho.com