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(); } ```
÷¾ð ´Þ±â
À̸§ :
¾ÏÈ£ :
¹øÈ£
Àüü
ÀϹÝ
M D
ÄÄÇ»ÅÍ ¾ð¾î
Á¦¸ñ
...(÷¾ð)
ÀÛ¼ºÀÏ
Á¢¼Ó
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
´ÙÀ½
nowmoon
Copyright 2003-2026 ¨Ï ±èÁ¾È£. All rights reserved.
kimjongho.co.kr kimjongho.kr kimjongho.net kimjongho.com