問題
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でポートを選べるようになるよ。
