【ラズパイピコ,vscode】serial monitorのポート欄に何も出てこなかった

vscode

問題

Microsoft製のVScode拡張機能「serial monitor」でポートにラズパイピコが出てこなかった。
ラズパイピコ繋いでるのに。

確認

通常モードでPCに接続する

通常モードっていうのは、bootselじゃないモードね。

ただUSB繋ぐほうのね

デバイスマネージャーにラズパイピコがあるか確認

ドライバがインストールされてる場合は
「ポート(COMとLPT)」ってカテゴリの中に
「USB Serial Device (COMx)」ってのが表示されるはず。

↓うちの環境

そもそも「ポート(COMとLPT)」すらない。

でも、「非表示のデバイスの表示」にチェックを入れたら

うす~い「USB シリアル デバイス(COM3)」が出てきた。

これがラズパイなのかどうかわからないけど
とにかく今は認識できてないみたい。

mycropythonでラズパイピコをいじってたときにドライバがインストールされたのかな?

原因

ソースとCMakeLists.txtにUSBシリアルを有効にするための記述がなかった。

解決方法

ソースとCMakeLists.txtにUSBシリアルを有効にするための記述を足す。

Lチカのサンプルプログラムblink.cを動かすという前提で
blink.cとCMakeLists.txtで説明

cファイル

/**
 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <stdio.h>
#include <stdbool.h>
#include "pico/stdlib.h"

int main() {

    // UART、USB、I2C、SPIなどの標準入出力を初期化
    stdio_init_all();

    const unsigned int LED_PIN = PICO_DEFAULT_LED_PIN;
    gpio_init(LED_PIN);
    gpio_set_dir(LED_PIN, GPIO_OUT);
    while (true) {
        gpio_put(LED_PIN, 1);
        sleep_ms(250);
        gpio_put(LED_PIN, 0);
        sleep_ms(250);
    }
}

必須の記述はコレ↓

stdio_init_all();

CMakeLists.txt

# 最小バージョンのCMakeを指定
cmake_minimum_required(VERSION 3.13)

# pico-sdkのパスを変数に格納
set(PICO_SDK_PATH "C:/xxx/xxxx/Raspberry Pi/Pico SDK v1.5.1/pico-sdk")

# PICO SDKの初期化に必要なスクリプトを読み込む
# 環境変数ではなく、上で定義した変数を使って include する
include(${PICO_SDK_PATH}/pico_sdk_init.cmake)

# プロジェクト名とバージョン、使用する言語を指定
project(blink C CXX ASM)

# 実行ファイルを定義
# プロジェクト名、ソースファイル、ヘッダーファイルを指定
add_executable(blink
    blink.c
)

# SDKの初期化
pico_sdk_init()

# USB経由の標準出力(printfなど)を有効にする。
pico_enable_stdio_usb(blink 1)

# ライブラリのリンク
target_link_libraries(blink pico_stdlib)

# 出力ファイルを生成
pico_add_extra_outputs(blink)

重要な記述はコレ↓

# SDKの初期化
pico_sdk_init()

# USB経由の標準出力(printfなど)を有効にする。
pico_enable_stdio_usb(blink 1)

結果

コンパイルしてラズパイピコにuf2ファイルを突っ込んだら

LEDもチカチカするし、デバイスマネージャーに表示されて

serial monitorでポートを選べるようになるよ。

タイトルとURLをコピーしました