STM32 F401RE Output
開発環境
・評価ボード NUCLEO-F401RE
・IDE MDK-ARM V5 and STM32CubeMX
・OS windows 10 pro
・本
定番!ARMキット&PIC用Cプログラムでいきなりマイコン制御[DVD-ROM付き] (マイコン活用シリーズ)
- 作者:芹井 滋喜
- 発売日: 2016/01/29
- メディア: 単行本
NUCLEO F401REを使って、基板に実装されているLEDをまずは光らせたいと思います。
STM32CubeMXを開き,New Projectを選択します。
Board Selectorタブの
Vendor: STMicroelectronics
Type of Board: Nucle64
MCU Series: F401RE
を選択します。
Nucleo-F401REのデフォルトプロジェクトではPC13がボタン、PA5がLED(緑)に割り当てられているのでこのまま使用します。
デフォルトプロジェクトのまま上メニュー→Project→Settingsを選択します。
Toolchain/IDEをMDK-ARM V5を選択し、OKを選択します。
この状態で上メニュー→Project→Generate Codeもしくは上の歯車ボタンを押します。
これでMDK-ARM V5にプロジェクトが出力されました。
Open Projectを選択し、プロジェクトを開きます。
MDKARMのApplication/Userのmain文には
/* Includes ------------------------------------------------------------------*/ #include "stm32f4xx_hal.h" /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ /* Private variables ---------------------------------------------------------*/ #define LED_PORT GPIOA #define LED_PIN GPIO_PIN_5 #define LED_ON GPIO_PIN_SET #define LED_OFF GPIO_PIN_RESET /* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*/ /* USER CODE END PV */ /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); void Error_Handler(void); static void MX_GPIO_Init(void); /* USER CODE BEGIN PFP */ /* Private function prototypes -----------------------------------------------*/ /* USER CODE END PFP */ /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ HAL_GPIO_WritePin(LED_PORT, LED_PIN, LED_ON); HAL_GPIO_WritePin(LED_PORT, LED_PIN, LED_OFF); HAL_GPIO_WritePin(LED_PORT, LED_PIN, LED_ON); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) /* USER CODE BEGIN 0 */ /* USER CODE END 0 */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); /* USER CODE BEGIN 2 */ // HALGPIO_WritePin(ポート名, ポート番号, 値); HAL_GPIO_WritePin(LED_PORT, LED_PIN, LED_ON); HAL_GPIO_WritePin(LED_PORT, LED_PIN, LED_OFF); HAL_GPIO_WritePin(LED_PORT, LED_PIN, LED_ON); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }
とします。これでBuild(F7)を選択します。
そして、右上Dボタンのマークでデバッグを開始します。
あとは、メニュー左上のデバッグ操作ボタンでデバッグをしていきます。
今回はLEDをON,OFF,ONとしているので、ブレークポイントを3つHAL_GPIO_WritePin関数の部分に置いて、Runを実行していけば、点滅させることができれば成功です。
デバッグを終了する際はまたDボタンを押します。デバッグの段階でマイコンにプログラムはダウンロードされているので、デバッグしないときは電源を投入すればプログラムが実行されます。
20160904の記事