Inflearn brand logo image
Inflearn brand logo image
์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

HAL, CubeMX, TrueSTUDIO๋ฅผ ์ด์šฉํ•œ STM32F4 ๋ฌด๋ฃŒ ๊ฐ•์ขŒ

๊ณ ์„ฑ๋Šฅ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์ธ STM32F ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋ถ„๋“ค์ด ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌด๋ฃŒ ์ปดํŒŒ์ผ๋Ÿฌ TrueSTUDIO ๋ฐ ์ฝ”๋“œ์ž๋™์ƒ์„ฑ ํ”„๋กœ๊ทธ๋žจ CubeMX ์„ค์น˜๋ถ€ํ„ฐ ์นฉ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋…์„ค๋ช…, ์†Œ์Šค์ฝ”๋“œ์ž‘์„ฑ(HAL ๋“œ๋ผ์ด๋ฒ„ ํ•จ์ˆ˜ ์„ค๋ช…), ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„๊นŒ์ง€ ๋ชจ๋“  ๊ณผ์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[์ž„๋ฒ ๋””๋“œ ยท IoT] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • STM32F4์˜ ๋‚ด๋ถ€ ํŽ˜๋ฆฌํŽ˜๋Ÿด ๋™์ž‘์„ ์ดํ•ดํ•˜๊ณ 

  • ๊ทธ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด ๋ฐ ์ž„๋ฒ ๋””๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€ป ์ˆ˜์—…์—์„œ ์‚ฌ์šฉํ•˜๋Š” STM32F4 EduBoard V1.2 ๋Š” ์ด ๊ณณ์—์„œ ๊ตฌ๋งคํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.(ํด๋ฆญ)

โ€ป ์†Œ์Šค์ฝ”๋“œ ๋ฐ ํšŒ๋กœ๋„๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (TrueSTUDIO ๋ฐ CubeIDE ๋ฒ„์ „ ๋‘˜๋‹ค ์ œ๊ณต)
https://github.com/ChrisWonyeobPark/M-HIVE_STM32_tutorial_course

 

 
๋ณธ ๊ฐ•์ขŒ๋Š” ์ตœ๊ทผ๋“ค์–ด ์ž„๋ฒ ๋””๋“œ ๊ฐœ๋ฐœ ๊ด€๋ จ ์‹ค๋ฌด์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ณ ์„ฑ๋Šฅ ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์ธ STM32F ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋ถ„๋“ค์ด ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฌด๋ฃŒ ์ปดํŒŒ์ผ๋Ÿฌ TrueSTUDIO ๋ฐ ์ฝ”๋“œ์ž๋™์ƒ์„ฑ ํ”„๋กœ๊ทธ๋žจ CubeMX ์„ค์น˜๋ถ€ํ„ฐ ์นฉ ๊ธฐ๋Šฅ์˜ ๊ฐœ๋…์„ค๋ช…, ์†Œ์Šค์ฝ”๋“œ์ž‘์„ฑ(HAL ๋“œ๋ผ์ด๋ฒ„ ํ•จ์ˆ˜ ์„ค๋ช…), ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„๊นŒ์ง€ ๋ชจ๋“  ๊ณผ์ •์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด ๋™์˜์ƒ ๊ฐ•์˜๋ฅผ ๋ณด์‹œ๋ฉด์„œ ์ฒœ์ฒœํžˆ ๋”ฐ๋ผํ•˜์‹œ๋ฉด ๊ณ ์„ฑ๋Šฅ 32bit MCU๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  
๋ณธ ๋™์˜์ƒ ๊ฐ•์ขŒ๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ ์ค‘์‹ฌ์œผ๋กœ ์ด 13๊ฐ•์œผ๋กœ ๊ตฌ์„ฑ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.
 
  • CH0-1. TrueSTUDIO ์„ค์น˜
  • CH0-2. CubeMX ์„ค์น˜
  • CH1. GPIO๋กœ LED์ถœ๋ ฅ ๋ฐ ์Šค์œ„์น˜ ์ž…๋ ฅ
  • CH2-1. UARTํ†ต์‹  (ํด๋ง๋ฐฉ์‹)
  • CH2-2. TrueSTUDIO์—์„œ UART printf ์‚ฌ์šฉํ•˜๊ธฐ
  • CH2-3. UART Rx Interrupt (์ˆ˜์‹ ์ธํ„ฐ๋ŸฝํŠธ)
  • CH3. Character LCD (Text LCD) ๋ฌธ์ž์—ด ๋ฐ ๋ณ€์ˆ˜ ์ถœ๋ ฅ
  • CH4. TIM Interrupt (ํƒ€์ด๋จธ ์ธํ„ฐ๋ŸฝํŠธ)
  • CH5. EXTI (์™ธ๋ถ€์ธํ„ฐ๋ŸฝํŠธ)
  • CH6-1. PWM ์ƒ์„ฑํ•˜๊ธฐ
  • CH6-2. PWM์œผ๋กœ SG90 ์„œ๋ณด, ๋ถ€์ €, DC๋ชจํ„ฐ ๊ตฌ๋™
  • CH6-3. ์‹ค์‹œ๊ฐ„ PWM ์ฃผ๊ธฐ ๋ณ€๊ฒฝ
  • CH7. ๋ฉ€ํ‹ฐ์ฑ„๋„ ADC with DMA
  • CH8. DAC
  • CH9. I2C ํ†ต์‹  (AT24C04 EEPROM)
  • CH10. SPI ํ†ต์‹  (VS1003 ์Œ์„ฑ์ฝ”๋ฑ)
  • CH11-1. SDIO + FATFS ํŒŒ์ผ์ž…์ถœ๋ ฅ
  • CH11-2. SD์นด๋“œ (FATFS) + VS1003 MP3 ํ”Œ๋ ˆ์ด์–ด
  • CH12-1. ETH + LwIP (UDP Echo Server)
  • CH12-2. ETH + LwIP (UDP ์ˆ˜์‹ ๋œ ๋ฐ์ดํ„ฐ ํ™œ์šฉํ•˜๊ธฐ)
  • CH13-1. CAN ํ†ต์‹  ๊ฐœ๋…
  • CH13-2. CAN ์„ค์ • ๋ฐ ์†ก์‹ ์ฝ”๋“œ ์ž‘์„ฑ
  • CH13-3. CAN ํ•„ํ„ฐ MASK ID ์„ค์ • ๋ฐ ์ˆ˜์‹ ์ฝ”๋“œ ์ž‘์„ฑ

 

โ€ป TrueSTUDIO์™€ CubeMX๊ฐ€ CubeIDE๋กœ๋งŒ ์ œ๊ณต๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค (CubeIDE = TrueSTUDIO + CubeMX๊ฐ€ ํ•ฉ์ณ์ง„ ํ†ตํ•ฉ ๊ฐœ๋ฐœํˆด). ๋”ฐ๋ผ์„œ CubeIDE๋กœ ์ง„ํ–‰ํ•˜์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฌ๋ฉฐ ๋™์˜์ƒ ๊ฐ•์ขŒ์˜ ๋‚ด์šฉ์€ CubeIDE๋กœ๋„ ๋˜‘๊ฐ™์ด ๋”ฐ๋ผํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
CubeIDE์šฉ CubeMX ๋ฒ„์ „์ด ๋†’์•„์ง์— ๋”ฐ๋ผ์„œ UI๊ฐ€ ์กฐ๊ธˆ ๋ณ€๊ฒฝ๋˜๊ธด ํ–ˆ์ง€๋งŒ ํฐ ํ‹€์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.  CubeIDE๋Š” ST ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (๋™์˜์ƒ ๊ฐ•์ขŒ๋ž‘ ๋˜‘๊ฐ™์€ ํ™˜๊ฒฝ์œผ๋กœ ๊ฐœ๋ฐœํ•˜์‹œ๋ ค๋ฉด CubeMX V4.26 ๋ฒ„์ „์„ ๋”ฐ๋กœ ๋‹ค์šด๋ฐ›์œผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์—ญ์‹œ ST ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)
๊ทธ๋Ÿผ ์ฆ๊ฑฐ์šด STM32 ๊ฐœ๋ฐœ ๋˜์‹œ๊ธฐ ๋ฐ”๋ผ๊ณ  ์งˆ๋ฌธ ์žˆ์œผ์‹œ๋ฉด ์–ธ์ œ๋“  ์œ ํŠœ๋ธŒ ๋Œ“๊ธ€์ด๋‚˜ ๋„ค์ด๋ฒ„ ์นดํŽ˜๋กœ ์งˆ๋ฌธ ์ฃผ์‹œ๋ฉด ํ™•์ธ ํ›„ ๋ฐ”๋กœ ๋‹ต์žฅ๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  
- ์— ํ•˜์ด๋ธŒ ChrisP

  

ํ•™์Šต ๋ชฉํ‘œ

  • STM32F4์˜ ๋‚ด๋ถ€ ํŽ˜๋ฆฌํŽ˜๋Ÿด ๋™์ž‘์„ ์ดํ•ดํ•˜๊ณ  ๊ทธ ๊ธฐ๋Šฅ๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด ๋ฐ ์ž„๋ฒ ๋””๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 ๋ฐฐ์šฐ๋Š” ๊ฒƒ๋“ค

 ๋„์›€์ด ๋˜๋Š” ๋ถ„๋“ค

  • STM32F ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œํ’ˆ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์‹ค๋ฌด์ž
  • ์ „์ž๊ณตํ•™ ๊ด€๋ จ ๊ณต๋ถ€ํ•˜๋Š” ํ•™์ƒ
  • ํ•˜๋“œ์›จ์–ด, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ, ํŽŒ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ถ„
  • IoT๋ฅผ ์ ‘๋ชฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ถ„
  • 8bit MCU์—์„œ 32bit MCU๋กœ ๋„˜์–ด๊ฐ€์‹œ๋ ค๊ณ  ํ•˜๋Š” ๋ถ„
  • ๋“œ๋ก , ์ž์œจ์ฃผํ–‰์ฐจ๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๋ถ„
  • ํ”ผ์ง€์ปฌ์ปดํ“จํŒ…์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋Š” ๋ถ„ ๋“ฑ

์ฐธ๊ณ  ์‚ฌํ•ญ

  • CubeMX -> ์นฉ ๊ธฐ๋Šฅ ์„ค์ •์ฝ”๋“œ ์ž๋™์ƒ์„ฑ ํ”„๋กœ๊ทธ๋žจ. TrueSTUDIO -> ์‹ค์ œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋นŒ๋“œํ•ด์„œ STM32 ๋‚ด๋ถ€์— ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ๋””๋ฒ„๊ทธํ•˜๋Š” ํˆด์ฒด์ธ. HAL -> ST๋งˆ์ดํฌ๋กœ์ผ๋ ‰ํŠธ๋กœ๋‹‰์Šค์—์„œ ์ž์‚ฌ์˜ STM32์˜ ์นฉ ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๊ตฌ๋™์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณตํ•˜๋Š” ํ•˜๋“œ์›จ์–ด๋ ˆ๋ฒจ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
  • C์–ธ์–ด๊ฐ€ ๊ธฐ๋ณธ ์–ธ์–ด๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ C์–ธ์–ด๊ฐ€ ์•ˆ๋˜์‹œ๋Š” ๋ถ„๋“ค์€ ์„ ํ–‰ํ•™์Šต ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์กฐ๊ฑด๋ฐ˜๋ณต๋ฌธ, ํฌ์ธํ„ฐ, ๊ตฌ์กฐ์ฒด, ํ•จ์ˆ˜, ์ง€์—ญ๋ณ€์ˆ˜, ์ „์—ญ๋ณ€์ˆ˜, ์ •์ ๋ณ€์ˆ˜ ๋“ฑ์€ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์ด๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ์•Œ๊ณ ๊ณ„์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
  • ์ „์žํšŒ๋กœ, ๊ธฐ์ดˆํšŒ๋กœ์ด๋ก ๋“ฑ์„ ์•Œ๊ณ ๊ณ„์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

์ง€์‹๊ณต์œ ์ž ์†Œ๊ฐœ

ChrisP
์„œ์šธ ํ™๋Œ€์ชฝ์—์„œ M-HIVE ์ž„๋ฒ ๋””๋“œ ์•„์นด๋ฐ๋ฏธ๋ฅผ ์šด์˜์ค‘์ธ ChrisP ์ž…๋‹ˆ๋‹ค. C์–ธ์–ด ๋ฐ STM32F ์˜คํ”„๋ผ์ธ ๊ฐ•์ขŒ๋„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
- ์œ ํŠœ๋ธŒ STM32F4 ์†์„ฑ์œผ๋กœ ๋”ฐ๋ผํ•˜๊ธฐ ๊ฐ•์ขŒ ์ฑ„๋„ ์šด์˜.
- ๋„ค์ด๋ฒ„์นดํŽ˜ cafe.naver.com/mhiveacademy ์šด์˜.
- ์ž„๋ฒ ๋””๋“œ ํŽŒ์›จ์–ด ๊ฐœ๋ฐœ ๊ฒฝ๋ ฅ 8๋…„.
- ์™„์ „์ž๋™ GPS ์›จ์ดํฌ์ธํŠธ ๋น„ํ–‰ ๋“œ๋ก  ๊ฐœ๋ฐœ.
- C์–ธ์–ด, STM32, PCB์•„ํŠธ์› ์ถœ๊ฐ•
- ๋Œ€ํ•™์ƒ ๋ฉ˜ํ† ๋ง ์ง€์›.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • STM32F ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œํ’ˆ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์‹ค๋ฌด์ž

  • ์ „์ž๊ณตํ•™ ๊ด€๋ จ ๊ณต๋ถ€ํ•˜๋Š” ํ•™์ƒ

  • ํ•˜๋“œ์›จ์–ด, ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ, ํŽŒ์›จ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ถ„

  • IoT๋ฅผ ์ ‘๋ชฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ๋ถ„

  • 8bit MCU์—์„œ 32bit MCU๋กœ ๋„˜์–ด๊ฐ€์‹œ๋ ค๊ณ  ํ•˜๋Š” ๋ถ„

  • ๋“œ๋ก , ์ž์œจ์ฃผํ–‰์ฐจ๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ๋ถ„

  • ํ”ผ์ง€์ปฌ์ปดํ“จํŒ…์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋Š” ๋ถ„ ๋“ฑ

์•ˆ๋…•ํ•˜์„ธ์š”
ChrisP์ž…๋‹ˆ๋‹ค.

4,977

๋ช…

์ˆ˜๊ฐ•์ƒ

128

๊ฐœ

์ˆ˜๊ฐ•ํ‰

276

๊ฐœ

๋‹ต๋ณ€

5.0

์ 

๊ฐ•์˜ ํ‰์ 

2

๊ฐœ

๊ฐ•์˜

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

23๊ฐœ โˆ™ (10์‹œ๊ฐ„ 6๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!

๋ฌด๋ฃŒ