ÄÜÅÙÃ÷ »ó¼¼º¸±â
±âÃÊ¿¡¼­ ÀÀ¿ë±îÁö STM32Fx Cortex ARM ÇÁ·Î±×·¡¹Ö ±âÃÊÆí (°³Á¤ÆÇ)


±âÃÊ¿¡¼­ ÀÀ¿ë±îÁö STM32Fx Cortex ARM ÇÁ·Î±×·¡¹Ö ±âÃÊÆí (°³Á¤ÆÇ)

±âÃÊ¿¡¼­ ÀÀ¿ë±îÁö STM32Fx Cortex ARM ÇÁ·Î±×·¡¹Ö ±âÃÊÆí (°³Á¤ÆÇ)

<È«ºÀÁ¶> Àú | Áö½Ä°ú°¨¼º#

Ãâ°£ÀÏ
2022-09-13
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
31 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
ÀúÀÚ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

ÇöÀç ¸¹Àº ´ëÇп¡¼­ 8ºñÆ® AVR ¼ö¾÷À» ÇÏ°í ÀÖ½À´Ï´Ù. ÇÊÀÚ°¡ ±Ù¹«ÇÏ°í ÀÖ´Â ´ëÇп¡¼­µµ ¿À·¡ÀüºÎÅÍ Atmega 128 MCU AVR ¼ö¾÷À» ÇØ¿Ô½À´Ï´Ù. ±â¼úÀÌ ¹ßÀüÇÔ¿¡ µû¶ó ±â¾÷¿¡¼­´Â ARM MCU¸¦ ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ½À´Ï´Ù. ÀÓº£µðµå AVR ¼ö¾÷À» ÇÏ´Â Çб³´Â À̾ ARM Cotex ¼ö¾÷À» ÇÏ´Â °ÍÀÌ Çлýµé¿¡°Ô »ê¾÷ü·Î °¬À» ¶§ ¸¹Àº µµ¿òÀÌ µÇ¸®¶ó »ý°¢µË´Ï´Ù. ±× ÀÌÀ¯´Â Cotex ARM °¡°ÝÀÌ ¸¹ÀÌ Àú·ÅÇÏ°í, ´Ù¾çÇÑ ¸Þ¸ð¸® ¿ë·®°ú 32ºñÆ®ÀÇ °í¼º´ÉÀÇ ±â´ÉÀ» °®Ãß°í ÀÖ°í, ¼±ÅÃÀÇ ÆøÀÌ ¾ÆÁÖ ³Ð±â ¶§¹®ÀÔ´Ï´Ù. ÇÊÀÚ´Â ¾î¶»°Ô Çϸé ÃÖ¼ÒÀÇ ¿¹»êÀ¸·Î ÇкΠÇлýµéÀÌ Èï¹Ì·Ó°Ô ¹è¿ï ¼ö ÀÖÀ»±î ÇÏ´Â °í¹Î¿¡¼­ ÀÌ Ã¥À» ¾²°Ô µÇ¾ú½À´Ï´Ù.

ÀúÀÚ¼Ò°³

- ÀÌ·Â
¼þ½Ç´ëÇб³ ÀüÀÚ°øÇаú(Çлç)
¼þ½Ç´ëÇб³ ´ëÇпø ¼ÒÇÁÆ®¿þ¾î°øÇÐ(¼®»ç)
¼þ½Ç´ëÇб³ ´ëÇпø ÄÄÇ»ÅÍ°øÇÐ(°øÇйڻç)
LGÁ¤º¸Åë½Å Ã¥ÀÓ¿¬±¸¿ø
¿µµ¿¿µº¸Åë½Å(ÁÖ) ºÎ»çÀå
HPNRT(ÁÖ) ¿¬±¸À§¿ø
À¯ÇÑ´ëÇб³ ÀüÀÚ°øÇаú °âÀÓ±³¼ö

- ¼ö»ó
À念½Ç»ó(IWF)

- °³¹ß°æ·Â
No.7, À̵¿Åë½Å IWF, ¹«¼±Å°Æù, PABX, ISDN ±³È¯±â,
ºñ»óÅëÈ­ÀåÄ¡, ¿¤¸®º£ÀÌÅÍ ¿ø°Ý°¨½Ã ½Ã½ºÅÛ,
¿¡½ºÄ÷¹ÀÌÅÍ º¸Á¶ºê·¹ÀÌÅ© Á¦¾î±â µî ±¹³» ´Ù¼öÀÇ Æ¯Ç㸦 º¸À¯

- °ü½ÉºÐ¾ß
ÀÓº£µðµå ½Ã½ºÅÛ, ÀÚÀ²ÁÖÇàÀÚµ¿Â÷, ÀΰøÁö´É ÀÇ·á ºÐ¾ß,
ARM Processor, RTOS, CANÅë½Å, ¾ÏÈ£Åë½Åº¸¾È,
»ç¹°ÀÎÅͳÝ, À½¼ºÅë½Å, µ¥ÀÌÅÍÅë½Å

¸ñÂ÷

¸Ó¸®¸»
°­ÀÇ°èȹ¼­ ±¸¼º

Part I SW°³¹ß¹æ¹ý UML°ú STM ÄÄÆÄÀÏ·¯ ȯ°æ±¸Ãà

1Àå SW°³¹ß¹æ¹ý ¹× ARM Processor
1.1 ¼ÒÇÁÆ®¿þ¾î °³¹ß¹æ¹ý
1) ¼ÒÇÁÆ®¿þ¾î¶õ?
2) ¼ÒÇÁÆ®¿þ¾îÀÇ Æ¯Â¡
3) ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÇ ±âº»ÀûÀÎ È°µ¿
4) °³¹ß ÀÛ¾÷ÀÇ Æ¯Â¡
5) ¼ÒÇÁÆ®¿þ¾îÀÇ °³¹ß ÇÁ·Î¼¼½º
6) ´Ü°èÀû ÇÁ·Î¼¼¼­
7) ´Ü°èÀû ÇÁ·Î¼¼¼­¿Í »êÃâ¹°
8) ¼ÒÇÁÆ®¿þ¾î °³¹ßºñ¿ë ºñÁß
1.2 ARM CPU ¹× NUCLEO º¸µå
1) ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­¿Í ¸¶ÀÌÅ©·ÎÄÁÆ®·Ñ·¯
2) ARM(Advanced RISC Machines)À̶õ?
3) RISC(Reduced Instruction Set Computer) ÇÁ·Î¼¼½º¶õ?
4) STM32F429(144Pin)
5) STM32F429Zi ARM MCU ±â´É
6) NUCLEO º¸µå ¼Ò°³
7) NUCLEO-F429Zi/F439Zi º¸µå ±â´É

2Àå Cortex ARM IDE ȯ°æ±¸Ãà
2.1 ¼±ÇàÇнÀ
1) STM32CubeMX °³¿ä
2) STM32CubeIDE
2.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
2.3 CubeMX ¼³Ä¡
1) CubeMX °³¿ä
2) CubeMX ¼³Ä¡
3) CubeMX¸¦ ½ÇÇàÇÏ°í »ç¿ë¹ý ÀÍÈ÷±â
2.4 STM32CubeIDE ¼³Ä¡
2.5 Debugging
2.6 ºÎÇ° ¹× »ç¿ë±â±â, ÇÁ·Î±×·¥
2.7 ¿¹Á¦ 1: Project File ¸¸µé±â ½Ç½À
1) CubeMX·Î NUCLEO-F429Zi ¼±ÅÃÇÑ ÈÄ Project ÄÚµå ¸¸µé±â
2) ½ÃÇèÇϱâ

3Àå UML ¼Ò°³¿Í LED Blinking
3.1 ¼±ÇàÇнÀ
1) UMLÀÇ °³¿ä
2) UMLÀÇ ¿ª»ç¿Í ¹öÀü
3) UML ´ÙÀ̾î±×·¥
4) UML ¸ðµ¨¸µ ÀýÂ÷
5) USE ÄÉÀ̽º
6) ½ÃÄö½º ´ÙÀ̾î±×·¥
7) »óÅ ´ÙÀ̾î±×·¥
8) Activity Diagram
9) StarUML
3.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
3.3 ¿¹Á¦ 1: LED Blinking
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML ToolÀ» ÀÌ¿ëÇÏ¿© Activity Diagram ÀÛ¼ºÇϱâ
3) ±¸ÇöÇϱâ
3.4 ¿¹Á¦ 2: Digital Input
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ

4Àå GPIO
4.1 ¼±ÇàÇнÀ
1) STM32 Æß¿þ¾î ±¸¼º
2) HAL(Hardware Abstraction Layer) µå¶óÀ̺ê
3) GPIO(General Purpose Input Output)
4) GPIO ¼³Á¤¿ë ±¸Á¶Ã¼
5) GPIO Mode
6) Pull
7) Speed
8) GPIO ±¸µ¿¿ë ÇÔ¼ö
9) ÀÎÅÍ·´Æ® 󸮿ë ÇÔ¼ö
10) GPIO °ü·Ã ÇÔ¼ö
4.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
4.3 ¿¹Á¦ 1: Switch ÀԷ¿¡ µû¸¥ LED Á¦¾î
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) ±¸ÇöÇϱâ(CubeMX·Î Project ¸¸µé±â)
4) ½ÃÇèÇϱâ
4.4 ¿¹Á¦ 2: ÇÁ¸°Æ®¹® »ç¿ëÇϱâ
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) CubeMX·Î Project¸¦ ¸¸µé°í code¸¦ generate ÇÑ´Ù.
4) ±¸ÇöÇϱâ
5) main.cÀÇ main(void) ÇÔ¼ö¿¡ ´ÙÀ½°ú °°ÀÌ ÄÚµùÇÑ´Ù.
6) ½ÃÇèÇϱâ

5Àå Analog Àü¾ÐÃøÁ¤°ú scanf
5.1 ¼±ÇàÇнÀ
1) ADC ºí·Ï´ÙÀ̾î±×·¥
2) STM32 ADC ±â´É
3) ADC Ŭ·°
4) ´ÜÀϺ¯È¯¸ðµå
5) ¿¬¼Óº¯È¯¸ðµå
6) STM32CubeMX¿¡¼­ÀÇ ADC ¼³Á¤
5.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
5.3 ¿¹Á¦ 1: ADC·Î Àü¾Ð Ç¥½ÃÇϱâ
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) CubeMX·Î Project ¸¸µé±â
4) ±¸ÇöÇϱâ
5) ½ÃÇèÇϱâ
5.4 ¿¹Á¦ 2: scanf ±â´É »ç¿ëÇϱâ
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) CubeMX·Î Project ¸¸µé±â
4) ±¸ÇöÇϱâ
5) ½ÃÇèÇϱâ

6Àå ÀÎÅÍ·´Æ®¿Í USART
6.1 ¼±ÇàÇнÀ
1) ÀÎÅÍ·´Æ®ÀÇ °³³ä
2) STM32F4xx ÀÎÅÍ·´Æ® Vector Table
6.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
6.3 ¿¹Á¦ 1: Interrupt ¹æ½ÄÀ¸·Î Switch ó¸®
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML ToolÀ» ÀÌ¿ëÇÏ¿© Activity Diagram ÀÛ¼ºÇϱâ
3) CubeMX¸¦ ½ÇÇàÇÏ¿© Project¸¦ ¸¸µé¾îº¸¶ó.
4) ±¸ÇöÇϱâ
5) ½ÃÇèÇϱâ
6.4 ¿¹Á¦ 2: USART¸¦ ÀÎÅÍ·´Æ® ¹æ½ÄÀ¸·Î »ç¿ë
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) CubeMX·Î Project ¸¸µé±â
4) ±¸ÇöÇϱâ
5) ½ÃÇèÇϱâ


Part ¥± FreeRTOS ȯ°æ¿¡¼­ÀÇ ½Ç½À

7Àå FreeRTOS
7.1 ¼±ÇàÇнÀ
1) RTOSÀÇ °³³ä
2) FreeRTOS¶õ?
3) RTOSÀÇ Æ¯Â¡
4) Multitasking
5) Message Queue
6) »ó¿ë OS¿Í FreeRTOS
7.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
7.3 ¿¹Á¦ 1: FreeRTOS Task·Î LED Blinking
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) CubeMX ±¸¼ºÇϱâ
4) ±¸ÇöÇϱâ
5) ½ÃÇèÇϱâ
7.4 ¿¹Á¦ 2: FreeRTOS»ó¿¡¼­ 2°³ÀÇ LED On/Off
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML ÀÛ¼ºÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ

8Àå FreeRTOS Monitor
8.1 ¼±ÇàÇнÀ
1) Monitor¿¡ ´ëÇÑ °³³ä
2) Å¥(Queue)ÀÇ °³³ä
8.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
8.3 ¿¹Á¦ 1: FreeRTOS ȯ°æ¿¡¼­ ¸ð´ÏÅÍ ¸¸µé±â
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) ±¸ÇöÇϱâ
4) Code Generate°¡ ´Ù ³¡³ª¸é Open Folder·Î µé¾î°¡º¸ÀÚ.
5) ½ÃÇèÇϱâ

9Àå Monitor Display Memory, Change Memory ½Ç½À
9.1 ¼±ÇàÇнÀ
1) STM32F429Zi Memory Map
9.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
9.3 ¿¹Á¦ 1: ¸ð´ÏÅÍ Display Memory ¸¸µé±â
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) Display Memory Program ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ
9.4 ¿¹Á¦ 2: ¸ð´ÏÅÍ Change Memory ¸¸µé±â
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ

10Àå Timer ½Ç½À
10.1 ¼±ÇàÇнÀ
1) STM32F429Zi CPU Timer
2) STM32F429Zi CPU Timer °ü·Ã ºí·Ï´ÙÀ̾î±×·¥
3) Advanced-control Timer(Timer 1, Timer 8)ÀÇ ±â´É
4) CubeMX Timer ¼³Á¤
10.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
10.3 ¿¹Á¦ 1: 100ms Timer ¸¸µé±â
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ±¸ÇöÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ
10.4 ¿¹Á¦ 2: Interrupt ¸ðµå·Î ŸÀÌ¸Ó »ç¿ë
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ±¸ÇöÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ
10.5 ¿¹Á¦ 3: PWM ¸ðµå·Î Timer »ç¿ë
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML ÀÛ¼ºÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ

11Àå DHT-11 ¿Â½Àµµ ¼¾¼­¿Í RTC ½ÇÇè
11.1 ¼±ÇàÇнÀ
1) DHT-11 ÇÁ·ÎÅäÄÝ
11.2 ºÎÇ° ¹× »ç¿ë±â±â, ÇÁ·Î±×·¥
11.3 ¿¹Á¦ 1: DHT-11 ½ÇÇè
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) Project ¸¸µé±â
4) ÄÚµùÇϱâ
5) ½ÃÇèÇϱâ
11.4 ¿¹Á¦ 2: RTC ½ÇÇè
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) RTC, Alarm ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ


Part ¥² µ¥ÀÌÅÍ Åë½Å °ü·ÃµÈ ½Ç½À

12Àå I2C, SPI Åë½Å°ú I2C LCD
12.1 ¼±ÇàÇнÀ
1) I2C LCD
2) I2C Åë½Å¹æ¹ý
3) SPI Åë½Å
12.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
12.3 ¿¹Á¦ 1: I2C Loop ½ÃÇè
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) I2C Loop ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ
12.4 ¿¹Á¦ 2: I2C LCD ½ÇÇè
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) I2C LCD ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ
12.5 ¿¹Á¦ 3: SPI Loop ½ÃÇè
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML ÀÛ¼ºÇϱâ
3) SPI Loop ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ

13Àå USARTÅë½Å
13.1 ¼±ÇàÇнÀ
1) ½Ã¸®¾ó Åë½Å °³³ä
2) RS-232 Åë½Å
3) RS-422 Åë½Å
4) RS-485 Åë½Å
13.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
13.3 ¿¹Á¦ 1: ½Ã¸®¾ó Åë½Å Loop ½ÇÇè
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) CubeMX·Î USART ȯ°æ ±¸¼ºÇÏ¿© ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ
13.4 ¿¹Á¦ 2: ½Ã¸®¾ó°ú ½º¸¶Æ®Æù ºí·çÅõ½º Åë½Å
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ

14Àå CAN Bus Åë½Å ½Ç½À
14.1 ¼±ÇàÇнÀ
1) °³¿ä
2) CAN Bus Ư¡
3) CAN Bus µîÀå ¹è°æ
4) CAN BUS ³×Æ®¿öÅ© µ¿ÀÛ ¿ø¸®
5) CAN Åë½Å ÇÁ·ÎÅäÄÝ
14.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
14.3 ¿¹Á¦ 1: CAN Åë½Å ·çÇÁ½ÇÇè
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î Activity Diagram ¼³°èÇϱâ
3) CAN Åë½Å¼Óµµ 250kbps ¼³Á¤Çϱâ
4) ±¸ÇöÇϱâ
5) ÄÚµùÇϱâ
6) ½ÃÇèÇϱâ

15Àå TCP/IP Server¿Í Client ±¸ÇöÇϱâ
15.1 ¼±ÇàÇнÀ
1) TCP Protocol
2) TCP Server¿Í Client
15.2 ÇнÀµµ±¸ ¹× ±âÀÚÀç
15.3 ¿¹Á¦ 1: TCP-IP Lwip Ping ½Ç½ÀÇϱâ
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ
15.4 ¿¹Á¦ 2: TCP-IP Server ½Ç½ÀÇϱâ
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML ¼³°èÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ
15.5 ¿¹Á¦ 3: TCP-IP Client ½Ç½ÀÇϱâ
1) »ç¿ëÀÚ ¿ä±¸»çÇ× ÀÛ¼ºÇϱâ
2) UML Tool·Î ¼³°èÇϱâ
3) ±¸ÇöÇϱâ
4) ½ÃÇèÇϱâ