{"id":11267,"date":"2026-01-04T13:46:15","date_gmt":"2026-01-04T04:46:15","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=11267"},"modified":"2026-01-06T12:29:35","modified_gmt":"2026-01-06T03:29:35","slug":"stm32cubemx-%eb%a1%9c-%ed%94%84%eb%a1%9c%ec%a0%9d%ed%8a%b8-%ec%83%9d%ec%84%b1","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=11267","title":{"rendered":"STM32CubeMX \ub85c \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131"},"content":{"rendered":"<h1>STM32CubeMX \ub85c \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131<\/h1>\n<p>STM32CubeMX\ub294 STM32 \ub9c8\uc774\ud06c\ub85c\ucee8\ud2b8\ub864\ub7ec \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\uc744 \ub3c4\uc640\uc8fc\ub294 \ud234\uc785\ub2c8\ub2e4.<\/p>\n<h2>1. MCU \ub610\ub294 \ubcf4\ub4dc \uc120\ud0dd<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2026\/01\/image-1767664852158.png\" alt=\"file\" \/><\/p>\n<p>\ud504\ub85c\uadf8\ub7a8\uc744 \uc2e4\ud589\ud55c \ud6c4 \uac00\uc7a5 \uba3c\uc800 \uc0ac\uc6a9\ud560 \uce69\uc774\ub098 \uac1c\ubc1c \ubcf4\ub4dc\ub97c \uc120\ud0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>New Project \uc2dc\uc791: \uba54\uc778 \ud654\uba74\uc5d0\uc11c &#8216;ACCESS TO MCU SELECTOR&#8217; \ub610\ub294 <strong>&#8216;ACCESS TO BOARD SELECTOR&#8217;<\/strong>\ub97c \ud074\ub9ad\ud569\ub2c8\ub2e4.<\/p>\n<p>\uac80\uc0c9 \ubc0f \uc120\ud0dd: Commercial Part Number \uce78\uc5d0 \uc0ac\uc6a9 \uc911\uc778 \uce69 \ubaa8\ub378\uba85(\uc608: NUCLEO-H563ZI)\uc744 \uc785\ub825\ud558\uace0, \uc624\ub978\ucabd \ubaa9\ub85d\uc5d0\uc11c \ud574\ub2f9 \uce69\uc744 \ub354\ube14 \ud074\ub9ad\ud569\ub2c8\ub2e4.<\/p>\n<p>TrustedZone \uad00\ub828 \uc120\ud0dd \ud31d\uc5c5\uc774 \ud45c\uc2dc\ub418\uba74 without TrustedZone \uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.<br \/>\n(\ub300\ubd80\ubd84\uc758 \ud29c\ud1a0\ub9ac\uc5bc\uc740 Non-Secure \uae30\uc900\uc73c\ub85c \uc791\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.)<\/p>\n<h2>2. Pinout &amp; Configuration (\uc8fc\ubcc0 \uc7a5\uce58 \ubc0f \ud540 \uc124\uc815)<\/h2>\n<p>\uce69\uc758 \ub0b4\ubd80 \uae30\ub2a5(GPIO, UART, ADC \ub4f1)\uc744 \ud65c\uc131\ud654\ud558\ub294 \ub2e8\uacc4\uc785\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2026\/01\/image-1767666381210.png\" alt=\"file\" \/><\/p>\n<p>System Core \uc124\uc815:<\/p>\n<ul>\n<li>\ud0c0\uc774\ud2c0\uc744 \ud074\ub9ad\ud558\uba74 \uc0c1\uc138 \uc124\uc815\uc774 \ud45c\uc2dc\ub429\ub2c8\ub2e4.<\/li>\n<li>ICACHE: 2-ways set associative \uc744 \uc124\uc815\ud574 \uc90d\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2>3. \ud074\ub7ed \uc124\uc815 (Clock Configuration)<\/h2>\n<p>\uc2dc\uc2a4\ud15c\uc758 \ub3d9\uc791 \uc18d\ub3c4\ub97c \uacb0\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc0c1\ub2e8 Clock Configuration \ud0ed\uc73c\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc0ac\uc6a9\ud558\uace0\uc790 \ud558\ub294 \ucd5c\ub300 \uc8fc\ud30c\uc218(HCLK) \uac12\uc744 \uc785\ub825\ud558\uace0 Enter\ub97c \ub204\ub974\uba74, CubeMX\uac00 \uc790\ub3d9\uc73c\ub85c \ucd5c\uc801\uc758 \uacbd\ub85c\ub97c \uacc4\uc0b0\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<p>\ud68c\ub85c\ub3c4\ub97c \ucc3e\uc544\ubcf4\uba74 HCLK \ucc3d\uc774 \ubcf4\uc785\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2026\/01\/image-1767666561338.png\" alt=\"file\" \/><\/p>\n<h2>4. \ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac (Project Manager)<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2026\/01\/image-1767666671511.png\" alt=\"file\" \/><\/p>\n<p>\ucf54\ub4dc\uac00 \uc0dd\uc131\ub420 \uacbd\ub85c\uc640 \uac1c\ubc1c \ud658\uacbd(IDE)\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.<\/p>\n<p>Project Name: \ud504\ub85c\uc81d\ud2b8 \uc774\ub984\uc744 \uc785\ub825\ud569\ub2c8\ub2e4.<\/p>\n<p>Project Location: \ud30c\uc77c\uc774 \uc800\uc7a5\ub420 \uacbd\ub85c\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n<p>Toolchain \/ IDE: \ubcf8\uc778\uc774 \uc0ac\uc6a9\ud558\ub294 \uac1c\ubc1c \ud658\uacbd\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4. (\uc608: STM32CubeIDE, Keil MDK-ARM, IAR \ub4f1)<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2026\/01\/image-1767666745722.png\" alt=\"file\" \/><\/p>\n<p>Code Generator \ud0ed: &#8216;Generate peripheral initialization as a pair of &#8216;.c\/.h&#8217; files per peripheral&#8217; \uc635\uc158\uc744 \uccb4\ud06c\ud558\uba74 \ucf54\ub4dc\uac00 \uae30\ub2a5\ubcc4\ub85c \uc815\ub9ac\ub418\uc5b4 \ud6e8\uc52c \ubcf4\uae30 \ud3b8\ud574\uc9d1\ub2c8\ub2e4.<br \/>\nCopy only necessary library files. \ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n<h2>5. \ucf54\ub4dc \uc0dd\uc131 (Generate Code)<\/h2>\n<p>\ubaa8\ub4e0 \uc124\uc815\uc774 \ub05d\ub0ac\ub2e4\uba74 \uc624\ub978\ucabd \uc0c1\ub2e8\uc758 GENERATE CODE \ubc84\ud2bc\uc744 \ud074\ub9ad\ud569\ub2c8\ub2e4. \uc124\uc815\ud55c \ub0b4\uc6a9\uc5d0 \ub9de\ucdb0 \ucd08\uae30\ud654 \ucf54\ub4dc\uac00 \ud3ec\ud568\ub41c \ud504\ub85c\uc81d\ud2b8 \ud30c\uc77c\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2026\/01\/image-1767667116240.png\" alt=\"file\" \/><\/p>\n<p>\uc7ac\uc124\uc815 \uac00\ub2a5:<br \/>\n\uc5b8\uc81c\ub4e0\uc9c0 .ioc \ud30c\uc77c\uc744 \ub2e4\uc2dc \uc5f4\uc5b4 \uc124\uc815\uc744 \ubc14\uafb8\uace0 \ucf54\ub4dc\ub97c \uc7ac\uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. (\ub2e8, USER CODE BEGIN\uacfc USER CODE END \uc0ac\uc774\uc5d0 \uc791\uc131\ud55c \ucf54\ub4dc\ub9cc \uc720\uc9c0\ub418\ub2c8 \uc8fc\uc758\ud558\uc138\uc694!)<\/p>\n<h2>6. NUCLEO-H563ZI \ubcf4\ub4dc\ub85c LED 3\uac1c \uc810\uba78 \ucf54\ub4dc \uc791\uc131<\/h2>\n<p>NUCLEO-H563ZI \uac1c\ubc1c\ubcf4\ub4dc\uc5d0\ub294 \uae30\ubcf8\uc801\uc73c\ub85c 3\uac1c\uc758 \uc0ac\uc6a9\uc790 LED\uac00 \uc788\uc2b5\ub2c8\ub2e4. 1\ucd08\ub9c8\ub2e4 \uc21c\ucc28\uc801\uc73c\ub85c \uc810\uba78\uc2dc\ud0a4\ub294 \ucf54\ub4dc\ub97c \uc791\uc131\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>6-1. \ucf54\ub4dc \uc791\uc131<\/h3>\n<p>\uc0dd\uc131\ub41c \ud504\ub85c\uc81d\ud2b8\uc758 main.c \ud30c\uc77c\uc744 \uc5f4\uace0, main() \ud568\uc218\uc758 \ubb34\ud55c \ub8e8\ud504 \ubd80\ubd84\uc5d0 \ub2e4\uc74c \ucf54\ub4dc\ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-c\">\/* USER CODE BEGIN WHILE *\/\nwhile (1)\n{\n  \/* USER CODE END WHILE *\/\n\n  \/* USER CODE BEGIN 3 *\/\n\n  \/\/ LED1 \ucf1c\uae30, \ub098\uba38\uc9c0 \ub044\uae30\n  HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN, GPIO_PIN_SET);\n  HAL_GPIO_WritePin(LED2_GPIO_PORT, LED2_PIN, GPIO_PIN_RESET);\n  HAL_GPIO_WritePin(LED3_GPIO_PORT, LED3_PIN, GPIO_PIN_RESET);\n  HAL_Delay(1000);  \/\/ 1\ucd08 \ub300\uae30\n\n  \/\/ LED2 \ucf1c\uae30, \ub098\uba38\uc9c0 \ub044\uae30\n  HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN, GPIO_PIN_RESET);\n  HAL_GPIO_WritePin(LED2_GPIO_PORT, LED2_PIN, GPIO_PIN_SET);\n  HAL_GPIO_WritePin(LED3_GPIO_PORT, LED3_PIN, GPIO_PIN_RESET);\n  HAL_Delay(1000);  \/\/ 1\ucd08 \ub300\uae30\n\n  \/\/ LED3 \ucf1c\uae30, \ub098\uba38\uc9c0 \ub044\uae30\n  HAL_GPIO_WritePin(LED1_GPIO_PORT, LED1_PIN, GPIO_PIN_RESET);\n  HAL_GPIO_WritePin(LED2_GPIO_PORT, LED2_PIN, GPIO_PIN_RESET);\n  HAL_GPIO_WritePin(LED3_GPIO_PORT, LED3_PIN, GPIO_PIN_SET);\n  HAL_Delay(1000);  \/\/ 1\ucd08 \ub300\uae30\n\n}\n\/* USER CODE END 3 *\/<\/code><\/pre>\n<h2>6-2. \ube4c\ub4dc \ubc0f \uc5c5\ub85c\ub4dc<\/h2>\n<p>\ud504\ub85c\uc81d\ud2b8\ub97c \ube4c\ub4dc\ud558\uace0(Ctrl+B \ub610\ub294 Build \ubc84\ud2bc) \ubcf4\ub4dc\uc5d0 \uc5c5\ub85c\ub4dc\ud569\ub2c8\ub2e4(Run \ubc84\ud2bc \ub610\ub294 F11). 3\uac1c\uc758 LED\uac00 1\ucd08 \uac04\uaca9\uc73c\ub85c \uc21c\ucc28\uc801\uc73c\ub85c \uc810\uba78\ud558\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ucf54\ub4dc \uc124\uba85<\/p>\n<p>HAL_GPIO_WritePin(): GPIO \ud540\uc758 \uc0c1\ud0dc\ub97c \uc81c\uc5b4\ud558\ub294 HAL \ub77c\uc774\ube0c\ub7ec\ub9ac \ud568\uc218\uc785\ub2c8\ub2e4. GPIO_PIN_SET\uc740 \ud540\uc744 High(LED \ucf1c\uc9d0)\ub85c, GPIO_PIN_RESET\uc740 Low(LED \uaebc\uc9d0)\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.<br \/>\nHAL_Delay(1000): \ubc00\ub9ac\ucd08 \ub2e8\uc704\ub85c \ub300\uae30\ud558\ub294 \ud568\uc218\uc785\ub2c8\ub2e4. 1000ms = 1\ucd08\uc785\ub2c8\ub2e4.<br \/>\nUSER CODE BEGIN\uacfc USER CODE END \uc0ac\uc774\uc5d0 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uba74, CubeMX\uc5d0\uc11c \ucf54\ub4dc\ub97c \uc7ac\uc0dd\uc131\ud574\ub3c4 \uc791\uc131\ud55c \ucf54\ub4dc\uac00 \uc720\uc9c0\ub429\ub2c8\ub2e4.<\/p>\n<p>\uc7ac\uc124\uc815 \uac00\ub2a5: \uc5b8\uc81c\ub4e0\uc9c0 .ioc \ud30c\uc77c\uc744 \ub2e4\uc2dc \uc5f4\uc5b4 \uc124\uc815\uc744 \ubc14\uafb8\uace0 \ucf54\ub4dc\ub97c \uc7ac\uc0dd\uc131\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. (\ub2e8, USER CODE BEGIN\uacfc USER CODE END \uc0ac\uc774\uc5d0 \uc791\uc131\ud55c \ucf54\ub4dc\ub9cc \uc720\uc9c0\ub418\ub2c8 \uc8fc\uc758\ud558\uc138\uc694!)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>STM32CubeMX \ub85c \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 STM32CubeMX\ub294 STM32 \ub9c8\uc774\ud06c\ub85c\ucee8\ud2b8\ub864\ub7ec \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\uc744 \ub3c4\uc640\uc8fc\ub294 \ud234\uc785\ub2c8\ub2e4. 1. MCU \ub610\ub294 \ubcf4\ub4dc \uc120\ud0dd \ud504\ub85c\uadf8\ub7a8\uc744 \uc2e4\ud589\ud55c \ud6c4 \uac00\uc7a5 \uba3c\uc800 \uc0ac\uc6a9\ud560 \uce69\uc774\ub098 \uac1c\ubc1c \ubcf4\ub4dc\ub97c \uc120\ud0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. New Project \uc2dc\uc791: \uba54\uc778 \ud654\uba74\uc5d0\uc11c &#8216;ACCESS TO MCU SELECTOR&#8217; \ub610\ub294 &#8216;ACCESS TO BOARD SELECTOR&#8217;\ub97c \ud074\ub9ad\ud569\ub2c8\ub2e4. \uac80\uc0c9 \ubc0f \uc120\ud0dd: Commercial Part Number \uce78\uc5d0 \uc0ac\uc6a9 \uc911\uc778 \uce69 \ubaa8\ub378\uba85(\uc608: NUCLEO-H563ZI)\uc744\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=11267\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-11267","post","type-post","status-publish","format-standard","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/11267","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11267"}],"version-history":[{"count":6,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/11267\/revisions"}],"predecessor-version":[{"id":11280,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/11267\/revisions\/11280"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}