Nucleo-F303K8 PIO STM32 でLチカ
Nucleo-F303K8
VScode + PlatformIO
framework は stm32cube を頑張って使ってみる。
サンプルを修正して使う場合
サンプルコードを普通に手に入れて実行するけど,Lチカしない... 当たり前だよね... 以下の通り変更。
platformio.ini
[platformio]
default_envs = nucleo_f303k8
[env:nucleo_f303k8]
platform = ststm32
framework = stm32cube
board = nucleo_f303k8
build_flags = -DF3
ビルド対象を nucleo_f303k8 にセット。
次に main.c で,LEDの定義を変更。PB3に修正。
main.c
#define LED_PIN GPIO_PIN_3
#define LED_GPIO_PORT GPIOB
#define LED_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
できた!
簡略化してみた
platformio.ini はそのままでも...
main.c
#include "stm32f3xx_hal.h"
void SysTick_Handler(void)
{
HAL_IncTick();
}
int main(void)
{
HAL_Init();
// init PB3
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.Pin = GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
while (1)
{
HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);
HAL_Delay(1000);
}
}
おまけ
普通にデバッグできる。素晴らしすぎ。
PERIPHERALSを展開していくと,レジスターが見える。以下はGPIOB - ODR3 が 1 つまりLEDが点灯しているところ。
Author And Source
この問題について(Nucleo-F303K8 PIO STM32 でLチカ), 我々は、より多くの情報をここで見つけました https://qiita.com/numeru55/items/a87ff9f43485f38b2de6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .