質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

Q&A

0回答

796閲覧

F746DiscoをHALでLチカさせたいができない

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

マイコン

マイクロコンピュータの略で、CPUにマイクロプロセッサを用いたコンピュータのこと。家電製品、電磁機器などの制御に用いられています。単体でコンピュータとしての機能を一通り備えています。 現代のパーソナルコンピュータに近く、同時期のメインフレームやミニコンピュータと比べ、小さいことが特徴です。

0グッド

0クリップ

投稿2019/09/25 06:17

編集2019/09/25 07:44

実現したいこと

ST社のマイコンF746 Discovery kitでLチカをしようと考えています。

STM32CubeIDEでデフォルトのプログラムを作成し、それから、PI_1をGPIO_OUTPUTに設定し、そのピンのNameを「LED1」にしました。

main.cのwhile内に下記のプログラムを記入しましたが、Lチカしませんでした。

c++

1HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin); 2HAL_Delay(500);

ブレークポイントを使ってデバッグしてみると、MX_GPIO_Init()で止まっているようです。

MX_GPIO_Init()をどのように変更するとよいのでしょうか?

MX_GPIO_Init()は下記のようになっています。これを見るときちんとピンも設定できているように思えます。

C++

1static void MX_GPIO_Init(void) 2{ 3 GPIO_InitTypeDef GPIO_InitStruct = {0}; 4 5 /* GPIO Ports Clock Enable */ 6 __HAL_RCC_GPIOE_CLK_ENABLE(); 7 __HAL_RCC_GPIOG_CLK_ENABLE(); 8 __HAL_RCC_GPIOB_CLK_ENABLE(); 9 __HAL_RCC_GPIOD_CLK_ENABLE(); 10 __HAL_RCC_GPIOC_CLK_ENABLE(); 11 __HAL_RCC_GPIOA_CLK_ENABLE(); 12 __HAL_RCC_GPIOJ_CLK_ENABLE(); 13 __HAL_RCC_GPIOI_CLK_ENABLE(); 14 __HAL_RCC_GPIOK_CLK_ENABLE(); 15 __HAL_RCC_GPIOF_CLK_ENABLE(); 16 __HAL_RCC_GPIOH_CLK_ENABLE(); // この行で最初に止まる。 17 18 /*Configure GPIO pin Output Level */ 19 HAL_GPIO_WritePin(OTG_FS_PowerSwitchOn_GPIO_Port, OTG_FS_PowerSwitchOn_Pin, GPIO_PIN_SET); 20 21 /*Configure GPIO pin Output Level */ 22 HAL_GPIO_WritePin(GPIOI, ARDUINO_D7_Pin|ARDUINO_D8_Pin|LED1_Pin, GPIO_PIN_RESET); 23 24 /*Configure GPIO pin Output Level */ 25 HAL_GPIO_WritePin(LCD_BL_CTRL_GPIO_Port, LCD_BL_CTRL_Pin, GPIO_PIN_SET); 26 27 /*Configure GPIO pin Output Level */ 28 HAL_GPIO_WritePin(LCD_DISP_GPIO_Port, LCD_DISP_Pin, GPIO_PIN_SET); 29 30 /*Configure GPIO pin Output Level */ 31 HAL_GPIO_WritePin(DCMI_PWR_EN_GPIO_Port, DCMI_PWR_EN_Pin, GPIO_PIN_RESET); 32 33 /*Configure GPIO pin Output Level */ 34 HAL_GPIO_WritePin(GPIOG, ARDUINO_D4_Pin|ARDUINO_D2_Pin|EXT_RST_Pin, GPIO_PIN_RESET); 35 36 /*Configure GPIO pin : OTG_HS_OverCurrent_Pin */ 37 GPIO_InitStruct.Pin = OTG_HS_OverCurrent_Pin; 38 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 39 GPIO_InitStruct.Pull = GPIO_NOPULL; 40 HAL_GPIO_Init(OTG_HS_OverCurrent_GPIO_Port, &GPIO_InitStruct); 41 42 /*Configure GPIO pins : ULPI_D7_Pin ULPI_D6_Pin ULPI_D5_Pin ULPI_D3_Pin 43 ULPI_D2_Pin ULPI_D1_Pin ULPI_D4_Pin */ 44 GPIO_InitStruct.Pin = ULPI_D7_Pin|ULPI_D6_Pin|ULPI_D5_Pin|ULPI_D3_Pin 45 |ULPI_D2_Pin|ULPI_D1_Pin|ULPI_D4_Pin; 46 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 47 GPIO_InitStruct.Pull = GPIO_NOPULL; 48 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 49 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; 50 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 51 52 /*Configure GPIO pin : OTG_FS_VBUS_Pin */ 53 GPIO_InitStruct.Pin = OTG_FS_VBUS_Pin; 54 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 55 GPIO_InitStruct.Pull = GPIO_NOPULL; 56 HAL_GPIO_Init(OTG_FS_VBUS_GPIO_Port, &GPIO_InitStruct); 57 58 /*Configure GPIO pin : Audio_INT_Pin */ 59 GPIO_InitStruct.Pin = Audio_INT_Pin; 60 GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; 61 GPIO_InitStruct.Pull = GPIO_NOPULL; 62 HAL_GPIO_Init(Audio_INT_GPIO_Port, &GPIO_InitStruct); 63 64 /*Configure GPIO pin : OTG_FS_PowerSwitchOn_Pin */ 65 GPIO_InitStruct.Pin = OTG_FS_PowerSwitchOn_Pin; 66 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 67 GPIO_InitStruct.Pull = GPIO_NOPULL; 68 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 69 HAL_GPIO_Init(OTG_FS_PowerSwitchOn_GPIO_Port, &GPIO_InitStruct); 70 71 /*Configure GPIO pins : ARDUINO_D7_Pin ARDUINO_D8_Pin LED1_Pin LCD_DISP_Pin */ 72 GPIO_InitStruct.Pin = ARDUINO_D7_Pin|ARDUINO_D8_Pin|LED1_Pin|LCD_DISP_Pin; 73 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 74 GPIO_InitStruct.Pull = GPIO_NOPULL; 75 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 76 HAL_GPIO_Init(GPIOI, &GPIO_InitStruct); 77 78 /*Configure GPIO pin : uSD_Detect_Pin */ 79 GPIO_InitStruct.Pin = uSD_Detect_Pin; 80 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 81 GPIO_InitStruct.Pull = GPIO_NOPULL; 82 HAL_GPIO_Init(uSD_Detect_GPIO_Port, &GPIO_InitStruct); 83 84 /*Configure GPIO pin : LCD_BL_CTRL_Pin */ 85 GPIO_InitStruct.Pin = LCD_BL_CTRL_Pin; 86 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 87 GPIO_InitStruct.Pull = GPIO_NOPULL; 88 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 89 HAL_GPIO_Init(LCD_BL_CTRL_GPIO_Port, &GPIO_InitStruct); 90 91 /*Configure GPIO pin : OTG_FS_OverCurrent_Pin */ 92 GPIO_InitStruct.Pin = OTG_FS_OverCurrent_Pin; 93 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 94 GPIO_InitStruct.Pull = GPIO_NOPULL; 95 HAL_GPIO_Init(OTG_FS_OverCurrent_GPIO_Port, &GPIO_InitStruct); 96 97 /*Configure GPIO pins : TP3_Pin NC2_Pin */ 98 GPIO_InitStruct.Pin = TP3_Pin|NC2_Pin; 99 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 100 GPIO_InitStruct.Pull = GPIO_NOPULL; 101 HAL_GPIO_Init(GPIOH, &GPIO_InitStruct); 102 103 /*Configure GPIO pin : DCMI_PWR_EN_Pin */ 104 GPIO_InitStruct.Pin = DCMI_PWR_EN_Pin; 105 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 106 GPIO_InitStruct.Pull = GPIO_NOPULL; 107 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 108 HAL_GPIO_Init(DCMI_PWR_EN_GPIO_Port, &GPIO_InitStruct); 109 110 /*Configure GPIO pin : LCD_INT_Pin */ 111 GPIO_InitStruct.Pin = LCD_INT_Pin; 112 GPIO_InitStruct.Mode = GPIO_MODE_EVT_RISING; 113 GPIO_InitStruct.Pull = GPIO_NOPULL; 114 HAL_GPIO_Init(LCD_INT_GPIO_Port, &GPIO_InitStruct); 115 116 /*Configure GPIO pin : ULPI_NXT_Pin */ 117 GPIO_InitStruct.Pin = ULPI_NXT_Pin; 118 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 119 GPIO_InitStruct.Pull = GPIO_NOPULL; 120 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 121 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; 122 HAL_GPIO_Init(ULPI_NXT_GPIO_Port, &GPIO_InitStruct); 123 124 /*Configure GPIO pins : ARDUINO_D4_Pin ARDUINO_D2_Pin EXT_RST_Pin */ 125 GPIO_InitStruct.Pin = ARDUINO_D4_Pin|ARDUINO_D2_Pin|EXT_RST_Pin; 126 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; 127 GPIO_InitStruct.Pull = GPIO_NOPULL; 128 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 129 HAL_GPIO_Init(GPIOG, &GPIO_InitStruct); 130 131 /*Configure GPIO pins : ULPI_STP_Pin ULPI_DIR_Pin */ 132 GPIO_InitStruct.Pin = ULPI_STP_Pin|ULPI_DIR_Pin; 133 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 134 GPIO_InitStruct.Pull = GPIO_NOPULL; 135 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 136 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; 137 HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); 138 139 /*Configure GPIO pin : RMII_RXER_Pin */ 140 GPIO_InitStruct.Pin = RMII_RXER_Pin; 141 GPIO_InitStruct.Mode = GPIO_MODE_INPUT; 142 GPIO_InitStruct.Pull = GPIO_NOPULL; 143 HAL_GPIO_Init(RMII_RXER_GPIO_Port, &GPIO_InitStruct); 144 145 /*Configure GPIO pins : ULPI_CLK_Pin ULPI_D0_Pin */ 146 GPIO_InitStruct.Pin = ULPI_CLK_Pin|ULPI_D0_Pin; 147 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 148 GPIO_InitStruct.Pull = GPIO_NOPULL; 149 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; 150 GPIO_InitStruct.Alternate = GPIO_AF10_OTG_HS; 151 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); 152 153 /*Configure GPIO pins : ARDUINO_MISO_D12_Pin ARDUINO_MOSI_PWM_D11_Pin */ 154 GPIO_InitStruct.Pin = ARDUINO_MISO_D12_Pin|ARDUINO_MOSI_PWM_D11_Pin; 155 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; 156 GPIO_InitStruct.Pull = GPIO_NOPULL; 157 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; 158 GPIO_InitStruct.Alternate = GPIO_AF5_SPI2; 159 HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); 160}

試したこと

F446REでもLチカしてみましたが、同じ手順でできたので、手順の問題ではないと思います。

補足情報(FW/ツールのバージョンなど)

STM32CubeIDE
STM32F746 Discovery kit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/09/25 06:43

その、MX_GPIO_Init()の中のどの行で止まるんでしょうか
退会済みユーザー

退会済みユーザー

2019/09/25 07:42

一番最初に止まるのは __HAL_RCC_GPIOH_CLK_ENABLE(); のところです。この行をコメントアウトしてもう一度実行すると一つ下のところが、 それをコメントアウトするともう一つ下のところが… というように続いていきます。
coco_bauer

2020/03/11 01:38

__HAL_RCC_GPIOH_CLK_ENABLE()という関数は、どのように定義されているのですか? 問題が起きている部分のプログラムが判らないと、原因を想像することすら無理です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問