Raspberry Pi RP2350 PICO SDK ตัวอย่าง - การเข้าถึงเร็ว
คำแนะนำ RP2350
ทุกอย่างด้านล่างส่วนนี้มาจากตัวอย่างของ Pico ดังนั้นละเว้น URL ฯลฯ แต่โดยทั่วไปคำแนะนำจะเหมือนกัน
ค่าเริ่มต้นของ Pico SDK ยังคงสร้างสำหรับ RP2040 (PICO_PLATFORM = RP2040) ดังนั้นในการสร้าง RP2350 คุณต้องผ่าน -DPICO_PLATFORM=rp2350
ถึง CMake (หรือ -DPICO_PLATFORM=rp2350-riscv
ส่วนใหญ่ แต่ไม่ใช่ตัวอย่างทั้งหมดในปัจจุบันทำงานบน RP2350 แต่คุณควรจะสามารถสร้างเต็มรูปแบบได้ด้วยแพลตฟอร์มใด ๆ ข้างต้น (PICO_PLATFORM = โฮสต์ แต่ในปัจจุบันล้มเหลวในบางตัวอย่าง)
สำหรับการรวบรวม RISC-V คุณควรใช้คอมไพเลอร์จากที่นี่: https://www.embecosm.com/resources/tool-chain-downloads/#riscv-stable
เอกสาร Pico-Examples ดั้งเดิม
เริ่มต้น
ดูการเริ่มต้นใช้งานกับ Raspberry Pi Pico และ Readme ใน Pico-SDK สำหรับข้อมูลเกี่ยวกับการเริ่มต้นและทำงาน
ตัวอย่างแรก
แอป | คำอธิบาย | ลิงก์ไปยัง prebuilt uf2 |
---|
hello_serial | โปรแกรม Hello World บังคับสำหรับ PICO (ส่งออกเวอร์ชันอนุกรม) | |
hello_usb | โปรแกรม Hello World บังคับสำหรับ PICO (เอาท์พุทมากกว่าเวอร์ชัน USB) | https://rptl.io/pico-hello-usb |
กระพริบตา | กะพริบเปิดและปิด LED ทำงานบนบอร์ดทั้งสองด้วย LED ปกติและ Pico W | https://rptl.io/pico-Blink |
Blink_simple | กะพริบเปิดและปิด LED ไม่ทำงานกับ Pico W. | https://rptl.io/pico-Blink |
picow_blink | กระพริบไฟ LED pico w บนกระดาน (ซึ่งเชื่อมต่อผ่านชิป wifi) | http://rptl.io/pico-wlink |
ADC
แอป | คำอธิบาย |
---|
hello_adc | แสดงแรงดันไฟฟ้าจากอินพุต ADC |
Joystick_display | แสดงอินพุตจอยสติ๊ก X/Y ตามอินพุต ADC สองตัว |
adc_console | เปลือกแบบโต้ตอบสำหรับการเล่นกับ ADC รวมถึงตัวอย่างของโหมดการจับภาพฟรี |
onboard_temperature | แสดงค่าของเซ็นเซอร์อุณหภูมิออนบอร์ด |
ไมโครโฟน _adc | อ่านค่าอะนาล็อกจากไมโครโฟนและพล็อตแอมพลิจูดเสียงที่วัดได้ |
dma_capture | ใช้ DMA เพื่อจับตัวอย่างจำนวนมากจาก ADC |
read_vsys | สาธิตวิธีการอ่าน VSYS เพื่อรับแรงดันไฟฟ้าของแหล่งจ่ายไฟ |
bootloaders (RP2350 เท่านั้น)
แอป | คำอธิบาย |
---|
enc_bootloader | bootloader ซึ่งถอดรหัสไบนารีจากแฟลชไปยัง SRAM ดู ReadMe แยกต่างหากสำหรับข้อมูลเพิ่มเติม |
นาฬิกา
แอป | คำอธิบาย |
---|
hello_48mhz | เปลี่ยนความถี่สัญญาณนาฬิกาของระบบเป็น 48 MHz ในขณะที่ทำงาน |
hello_gpout | ใช้เอาต์พุตนาฬิกาวัตถุประสงค์ทั่วไป (GPOUT) เพื่อขับเคลื่อนดิวิชั่นของนาฬิกาภายในไปยังเอาต์พุต GPIO |
hello_resus | เปิดใช้งานคุณสมบัติการช่วยชีวิตนาฬิกา "โดยบังเอิญ" หยุดนาฬิการะบบและแสดงวิธีการกู้คืน |
detached_clk_peri | ถอดนาฬิการอบนอกและนาฬิการะบบที่แตกต่างกัน |
cmake
แอป | คำอธิบาย |
---|
build_variants | สร้างแอพเดียวกันสองเวอร์ชันที่มีการกำหนดค่าที่แตกต่างกัน |
DCP
แอป | คำอธิบาย |
---|
hello_dcp | ใช้ตัวประมวลผลร่วมที่มีความแม่นยำสองเท่าในแอสเซมเบลอร์โดยตรง |
DMA
แอป | คำอธิบาย |
---|
hello_dma | ใช้ DMA เพื่อคัดลอกข้อมูลในหน่วยความจำ |
control_blocks | สร้างรายการบล็อกควบคุมเพื่อตั้งโปรแกรมลำดับการถ่ายโอน DMA ที่ยาวขึ้นไปยัง UART |
channel_irq | ใช้ตัวจัดการ IRQ เพื่อกำหนดค่าช่อง DMA ใหม่เพื่อขับข้อมูลอย่างต่อเนื่องผ่านเครื่อง PIO State |
sniff_crc | ใช้ความสามารถ 'ดมกลิ่น' ของเครื่องยนต์ DMA เพื่อคำนวณ CRC32 บนบัฟเฟอร์ข้อมูล |
HSTX
แอป | คำอธิบาย |
---|
DVI_OUT_HSTX_ENCODER RP2350 | ใช้ HSTX เพื่อส่งสัญญาณ DVI ด้วย 3: 3: 2 RGB |
แฟลช
แอป | คำอธิบาย |
---|
cache_perfctr | อ่านและล้างเคาน์เตอร์ประสิทธิภาพแคช แสดงให้เห็นว่าพวกเขาได้รับผลกระทบจากการอ่านแฟลชประเภทต่างๆอย่างไร |
นุก | กำจัดเนื้อหาของแฟลช ตัวอย่างของไบนารี NO_FLASH (UF2 โหลดโดยตรงไปยัง SRAM และทำงานในสถานที่ที่นั่น) ยูทิลิตี้ที่มีประโยชน์ในการลากและวางลงบนปิโกของคุณหากจำเป็นต้องเกิดขึ้น |
โปรแกรม | ลบภาคแฟลชโปรแกรมหนึ่งหน้าแฟลชและอ่านข้อมูลกลับ |
xip_stream | สตรีมข้อมูลโดยใช้ฮาร์ดแวร์ XIP Stream ซึ่งช่วยให้ข้อมูลเป็น DMA ในพื้นหลังในขณะที่เรียกใช้รหัสจาก Flash |
ssi_dma | DMA โดยตรงจากอินเทอร์เฟซแฟลช (การตอกบัตร SCK ต่อเนื่อง) เพื่อประสิทธิภาพการอ่านจำนวนมาก |
runtime_flash_permissions | แสดงให้เห็นถึงการเพิ่มพาร์ติชันที่รันไทม์เพื่อเปลี่ยนสิทธิ์แฟลช |
เครื่องราง
ตัวอย่างเหล่านี้ต้องการให้คุณตั้งค่า FREERTOS_KERNEL_PATH
ให้ชี้ไปที่เคอร์เนล Freertos ดู https://github.com/freertos/freertos-kernel
แอป | คำอธิบาย |
---|
hello_freertos | ตัวอย่างที่แสดงให้เห็นว่าการทำงานของ Freertos และงานใน 1 หรือ 2 คอร์ |
GPIO
แอป | คำอธิบาย |
---|
hello_7segment | ใช้ GPIOS เพื่อขับเคลื่อนจอแสดงผล LED เจ็ดเซ็กเมนต์ |
hello_gpio_irq | ลงทะเบียนตัวจัดการขัดจังหวะเพื่อเรียกใช้เมื่อ GPIO ถูกสลับ |
DHT_SENSOR | ใช้ GPIO เพื่อ bitbang โปรโตคอลอนุกรมสำหรับเซ็นเซอร์อุณหภูมิ/ความชื้น DHT |
ดูเพิ่มเติมที่: กะพริบกระพริบ LED ที่แนบมากับ GPIO
HW Divider
แอป | คำอธิบาย |
---|
hello_divider | แสดงวิธีการเข้าถึงตัวแบ่งจำนวนเต็มฮาร์ดแวร์โดยตรงในกรณีที่การฉีด AEABI ถูกปิดใช้งาน |
i2c
แอป | คำอธิบาย |
---|
bus_scan | สแกนบัส I2C สำหรับอุปกรณ์และแสดงผล |
BMP280_I2C | อ่านและแปลงข้อมูลอุณหภูมิและความดันจากเซ็นเซอร์ BMP280 ติดกับบัส I2C |
LCD_1602_I2C | แสดงข้อความบางส่วนบนจอแสดงผล LCD ตัวอักษร 16x2 ทั่วไปผ่าน I2C |
lis3dh_i2c | อ่านการเร่งความเร็วและค่าอุณหภูมิจากเซ็นเซอร์ LIS3DH ผ่าน I2C |
MCP9808_I2C | อ่านอุณหภูมิกำหนดขีด จำกัด และเพิ่มการแจ้งเตือนเมื่อมีการ จำกัด |
MMA8451_I2C | อ่านการเร่งความเร็วจากตัวเร่งความเร็ว MMA8451 และช่วงการตั้งค่าและความแม่นยำสำหรับข้อมูล |
MPL3115A2_I2C | อินเทอร์เฟซกับเครื่องวัดความสูง MPL3115A2 สำรวจการขัดจังหวะและคุณสมบัติของบอร์ดขั้นสูงผ่าน I2C |
MPU6050_I2C | อ่านการเร่งความเร็วและค่าอัตราเชิงมุมจาก MPU6050 accelerometer/Gyro ติดกับบัส I2C |
SSD1306_I2C | แปลงและแสดงบิตแมปบนจอแสดงผล OLED ที่ขับเคลื่อนด้วย 128x32 หรือ 128x64 SSD1306 |
PA1010D_I2C | อ่านข้อมูลตำแหน่ง GPS แยกวิเคราะห์และแสดงข้อมูลผ่าน I2C |
PCF8523_I2C | อ่านค่าเวลาและวันที่จากนาฬิกาเรียลไทม์ ตั้งค่าเวลาปัจจุบันและการเตือนภัย |
HT16K33_I2C | ขับ LED 4 หลัก 14 ด้วย HT16K33 |
slave_mem_i2c | ตัวอย่างทาส i2c ที่ทาสใช้หน่วยความจำ 256 ไบต์ |
ผู้แก้ไข
แอป | คำอธิบาย |
---|
hello_interp | ชุดตัวอย่างเล็ก ๆ แสดงวิธีการเข้าถึงฮาร์ดแวร์อินเตอร์พอลเตอร์แกนท้องถิ่นและใช้คุณสมบัติส่วนใหญ่ |
มัลติคอร์
แอป | คำอธิบาย |
---|
hello_multicore | เรียกใช้ฟังก์ชั่นบนแกนที่สองพิมพ์ข้อความบางส่วนในแต่ละแกนและส่งผ่านข้อมูลไปมาผ่านกล่องจดหมาย FIFOS |
multicore_fifo_irqs | ในแต่ละแกนให้ลงทะเบียนและขัดจังหวะตัวจัดการสำหรับกล่องจดหมาย FIFOS แสดงให้เห็นว่าไฟอินเตอร์รัปต์เมื่อแกนนั้นได้รับข้อความ |
multicore_runner | ตั้งค่าแกนที่สองที่จะยอมรับและเรียกใช้ตัวชี้ฟังก์ชั่นใด ๆ ที่ผลักเข้าไปในกล่องจดหมาย FIFO กดรหัสไม่กี่ชิ้นและรับคำตอบกลับ |
multicore_doorbell | อ้างว่ามีออดสองตัวสำหรับการส่งสัญญาณระหว่างคอร์ นับจำนวนออด IRQs เกิดขึ้นในแกนที่สองและใช้ออดเพื่อประสานงานทางออก |
OTP
แอป | คำอธิบาย |
---|
hello_otp | สาธิตการอ่านและการเขียนจาก OTP บน RP2350 พร้อมกับคุณสมบัติบางอย่างของ OTP (การแก้ไขข้อผิดพลาดและการล็อคหน้า) |
บอร์ดปิโก
แอป | คำอธิบาย |
---|
กะพริบ | กะพริบ "สวัสดีโลก" ในรหัสมอร์สบน LED ของ Pico |
ปุ่ม | ใช้ปุ่ม bootsel ของ Pico เป็นอินพุตปุ่มปกติโดยระงับการเข้าถึงแฟลชชั่วคราว |
Pico W เครือข่าย
ตัวอย่างเหล่านี้มีไว้สำหรับ pico w และใช้ได้เฉพาะสำหรับ PICO_BOARD=pico_w
แอป | คำอธิบาย |
---|
picow_access_point | เริ่มจุดเชื่อมต่อ WiFi และคำขอ DHCP ฟิลด์ |
picow_blink | กะพริบ LED ออนบอร์ด (ซึ่งเชื่อมต่อผ่านชิป WiFi) |
picow_blink_slow_clock | กระพริบ LED ออนบอร์ด (ซึ่งเชื่อมต่อผ่านชิป wifi) ด้วยนาฬิการะบบช้าลงเพื่อแสดงวิธีการกำหนดค่าการสื่อสารใหม่กับชิป WiFi ภายใต้สถานการณ์เหล่านั้น |
picow_iperf_server | รันเซิร์ฟเวอร์ "IPERF" สำหรับการทดสอบความเร็ว WiFi |
picow_ntp_client | เชื่อมต่อกับเซิร์ฟเวอร์ NTP เพื่อดึงและแสดงเวลาปัจจุบัน |
picow_tcp_client | ไคลเอนต์ TCP ง่าย ๆ คุณสามารถเรียกใช้ python_test_tcp_server.py เพื่อเชื่อมต่อ |
picow_tcp_server | เซิร์ฟเวอร์ TCP อย่างง่าย คุณสามารถใช้ python_test_tcp_client.py เพื่อเชื่อมต่อ |
picow_tls_client | สาธิตวิธีการขอ HTTPS โดยใช้ TLS |
picow_tls_verify | สาธิตวิธีการร้องขอ HTTPS โดยใช้ TLS พร้อมการตรวจสอบใบรับรอง |
picow_wifi_scan | สแกนสำหรับเครือข่าย wifi และพิมพ์ผลลัพธ์ |
picow_udp_beacon | เครื่องส่งสัญญาณ UDP แบบง่าย |
picow_httpd | รันแอพทดสอบเซิร์ฟเวอร์ LWIP HTTP |
ตัวอย่าง freertos
นี่คือตัวอย่างของการรวมเครือข่าย Pico W ภายใต้ Freertos และต้องการให้คุณตั้งค่า FREERTOS_KERNEL_PATH
ให้ชี้ไปที่เคอร์เนล Freertos ดู https://github.com/freertos/freertos-kernel
แอป | คำอธิบาย |
---|
picow_freertos_iperf_server_nosys | รันเซิร์ฟเวอร์ "IPERF" สำหรับการทดสอบความเร็ว WiFi ภายใต้ FREERTOS ในโหมด NO_SYS = 1 LED จะกระพริบในงานอื่น |
picow_freertos_iperf_server_sys | เรียกใช้เซิร์ฟเวอร์ "IPERF" สำหรับการทดสอบความเร็ว WiFi ภายใต้โหมด FREERTOS ในโหมด NO_SYS = 0 (เช่นการรวม FreerTOS แบบเต็ม)) LED จะกระพริบในงานอื่น |
picow_freertos_ping_nosys | รันแอพทดสอบ LWIP-Contrib/Apps/Ping ภายใต้ Freertos ในโหมด NO_SYS = 1 |
picow_freertos_ping_sys | รันแอพทดสอบ LWIP-Contrib/Apps/Ping ภายใต้โหมด Freertos ในโหมด NO_SYS = 0 (เช่นการรวม Freertos เต็ม) แอพทดสอบใช้ LWIP Socket API ในกรณีนี้ |
picow_freertos_ntp_client_socket | เชื่อมต่อกับเซิร์ฟเวอร์ NTP โดยใช้ LWIP Socket API กับ FreerTOS ในโหมด NO_SYS = 0 (เช่นการรวม Freertos เต็ม) |
pico_freertos_htttpd_nosys | รันแอพทดสอบเซิร์ฟเวอร์ LWIP HTTP ภายใต้ FREERTOS ในโหมด NO_SYS = 1 |
pico_freertos_htttpd_sys | รันแอพทดสอบเซิร์ฟเวอร์ LWIP HTTP ภายใต้ FREERTOS ในโหมด NO_SYS = 0 (เช่นการรวม FREERTOS เต็ม)) |
Pico W Bluetooth
ตัวอย่างเหล่านี้มีไว้สำหรับ pico w และใช้ได้เฉพาะสำหรับ PICO_BOARD=pico_w
พวกเขาเป็นตัวอย่างจากสแต็คบลูทู ธ ครัวสีน้ำเงินดูที่นี่เพื่อดูคำอธิบายทั้งหมด
โดยค่าเริ่มต้นตัวอย่างบลูทู ธ จะถูกสร้างขึ้นในหนึ่งโหมด "" เท่านั้น ( พื้นหลัง , การสำรวจความคิดเห็น หรือ freertos ) โดยมี พื้นหลัง เริ่มต้น สิ่งนี้สามารถเปลี่ยนแปลงได้โดยการผ่าน -DBTSTACK_EXAMPLE_TYPE=poll
ฯลฯ ไปยัง CMake
หรือตัวอย่างทั้งหมดสามารถสร้าง (ซึ่งอาจช้า) โดยผ่าน -DBTSTACK_EXAMPLE_TYPE=all
สามารถสร้างได้เฉพาะในกรณีที่ FREERTOS_KERNEL_PATH
ถูกกำหนด
ตัวอย่างบลูทู ธ ที่ใช้เสียงต้องใช้รหัสใน pico-extras ผ่าน -DPICO_EXTRAS_PATH=${HOME}/pico-extras
บนบรรทัดคำสั่ง cmake หรือกำหนด PICO_EXTRAS_PATH=${HOME}/pico-extras
ในสภาพแวดล้อมของคุณ
แอป | คำอธิบาย |
---|
picow_bt_example_a2dp_sink_demo | A2DP Sink - รับสตรีมเสียงและการเล่นควบคุม |
picow_bt_example_a2dp_source_demo | A2DP Source - สตรีมเสียงและปริมาณการควบคุม |
picow_bt_example_ancs_client_demo | ลูกค้า Le ANCS - บริการแจ้งเตือน Apple |
picow_bt_example_att_delayed_response | LE อุปกรณ์ต่อพ่วง - การตอบสนองล่าช้า |
picow_bt_example_audio_duplex | ไดรเวอร์เสียง - ส่งต่อเสียงจากแหล่งที่มาถึงจม |
picow_bt_example_avrcp_browsing_client | AVRCP Browsing - เรียกดูผู้เล่นสื่อและข้อมูลสื่อ |
picow_bt_example_dut_mode_classic | การทดสอบ - เปิดใช้งานอุปกรณ์ภายใต้โหมดทดสอบ (DUT.C) สำหรับคลาสสิก |
picow_bt_example_gap_dedicated_bonding | การผูกมัดช่องว่าง |
picow_bt_example_gap_inquiry | Gap Classic Inquiry |
picow_bt_example_gap_le_advertisements | Gap Le Advertisements Scanner |
picow_bt_example_gap_link_keys | การจัดการคีย์ลิงค์ Gap (classic.c) |
picow_bt_example_gatt_battery_query | ไคลเอนต์บริการแบตเตอรี่ Gatt |
picow_bt_example_gatt_browser | ลูกค้า GATT - ค้นพบบริการหลัก |
picow_bt_example_gatt_counter | Gatt Server - Counter Heartbeat Over Gatt |
picow_bt_example_gatt_device_information_query | ไคลเอนต์บริการข้อมูลอุปกรณ์ GATT |
picow_bt_example_gatt_heart_rate_client | ไคลเอนต์เซ็นเซอร์อัตราการเต้นของหัวใจ Gatt |
picow_bt_example_gatt_streamer_server | ประสิทธิภาพ - สตรีมข้อมูลผ่าน GATT (Server.C) |
picow_bt_example_hfp_ag_demo | HFP AG - เกตเวย์เสียง |
picow_bt_example_hfp_hf_demo | HFP HF - แฮนด์ฟรี |
picow_bt_example_hid_host_demo | ซ่อนโฮสต์คลาสสิก |
picow_bt_example_hid_keyboard_demo | HID แป้นพิมพ์คลาสสิก |
picow_bt_example_hid_mouse_demo | ซ่อนเมาส์คลาสสิก |
picow_bt_example_hog_boot_host_demo | HID BOOT HOST LE |
picow_bt_example_hog_host_demo | HID HOST LE |
picow_bt_example_hog_keyboard_demo | ซ่อนคีย์บอร์ด le |
picow_bt_example_hog_mouse_demo | ซ่อนเมาส์ |
picow_bt_example_hsp_ag_demo | HSP AG - เกตเวย์เสียง |
picow_bt_example_hsp_hs_demo | HSP HS - ชุดหูฟัง |
picow_bt_example_le_credit_based_flow_control_mode_client | ไคลเอนต์โหมดการควบคุมการไหลตามเครดิต LE-ส่งข้อมูลผ่าน L2CAP |
picow_bt_example_le_credit_based_flow_control_mode_server | เซิร์ฟเวอร์โหมดการควบคุมการไหลตามเครดิต LE-รับข้อมูลผ่าน L2CAP |
picow_bt_example_led_counter | Hello World - กระพริบ LED โดยไม่มีบลูทู ธ |
picow_bt_example_le_mitm | เครื่องมือ Le Man-in-the-Middle |
picow_bt_example_le_streamer_client | ประสิทธิภาพ - สตรีมข้อมูลผ่าน GATT (client.c) |
picow_bt_example_mod_player | ไดรเวอร์เสียง - เพลง MOD ของยุค 80 |
picow_bt_example_nordic_spp_le_counter | เซิร์ฟเวอร์ heartbeat-hearthbeat เหมือน SPP |
picow_bt_example_nordic_spp_le_streamer | เซิร์ฟเวอร์ Streamer ที่มีลักษณะคล้ายกับ Le Nordic SPP |
picow_bt_example_sdp_general_query | ไคลเอนต์ SDP - Query Remote SDP Records |
picow_bt_example_sdp_rfcomm_query | ไคลเอนต์ SDP - Query RFCOMM SDP Record |
picow_bt_example_sine_player | ไดรเวอร์เสียง - เล่นไซน์ |
picow_bt_example_sm_pairing_central | Le Central - วิธีการจับคู่ทดสอบ |
picow_bt_example_sm_pairing_peripheral | LE อุปกรณ์ต่อพ่วง - วิธีการจับคู่ทดสอบ |
picow_bt_example_spp_and_gatt_counter | โหมดคู่ - SPP และ LE Counter |
picow_bt_example_spp_and_gatt_streamer | โหมดคู่ - SPP และ LE streamer |
picow_bt_example_spp_counter | SPP Server - Counter Heartbeat ผ่าน RFCOMM |
picow_bt_example_spp_flowcontrol | SPP Server - การควบคุมการไหลของ RFCOMM |
picow_bt_example_spp_streamer_client | ประสิทธิภาพ - สตรีมข้อมูลผ่าน SPP (client.c) |
picow_bt_example_spp_streamer | ประสิทธิภาพ - สตรีมข้อมูลผ่าน SPP (Server.C) |
picow_bt_example_ublox_spp_le_counter | เซิร์ฟเวอร์ heartbeat เหมือน le u-blox spp |
นอกจากนี้ยังมีตัวอย่างบลูทู ธ แบบสแตนด์อโลน (ไม่มีตัวอย่างโครงสร้างพื้นฐานการสร้างทั่วไปทั้งหมด) พร้อม:
แอป | คำอธิบาย |
---|
picow_ble_temp_sensor | อ่านจากเซ็นเซอร์อุณหภูมิบนบอร์ดและส่งการแจ้งเตือนผ่าน BLE |
picow_ble_temp_sensor_with_wifi | เหมือนกับข้างบน แต่ยังเชื่อมต่อกับ Wi-Fi และเริ่มเซิร์ฟเวอร์ "iperf" |
picow_ble_temp_reader | เชื่อมต่อกับหนึ่งใน "เซ็นเซอร์" ข้างต้นและอ่านอุณหภูมิ |
PIO
แอป | คำอธิบาย |
---|
hello_pio | ตัวอย่างน้อยที่สุดแสดงวิธีการควบคุม LED โดยการผลักค่าลงใน PIO FIFO |
APA102 | รูปแบบสายรุ้งบนสายไฟ LED RGB APA102 ที่อยู่ได้ |
โขก _input | เปลี่ยนข้อมูลอนุกรมสุ่มตัวอย่างด้วยนาฬิกาภายนอก |
differential_manchester | ส่งและรับอนุกรมที่เข้ารหัสแมนเชสเตอร์ (BMC) |
ฮับ 75 | แสดงภาพบนเมทริกซ์ LED 128x64 Hub75 RGB |
i2c | สแกนรถบัส I2C |
ir_nec | การส่งและรับรหัส IR (infra-red) โดยใช้ PIO |
logic_analyser | ใช้ PIO และ DMA เพื่อจับการติดตามตรรกะของ GPIO บางตัวในขณะที่หน่วย PWM กำลังขับรถอยู่ |
MANCHESTER_ENCODING | ส่งและรับอนุกรมที่เข้ารหัสแมนเชสเตอร์ |
Onewire | ไลบรารีสำหรับการเชื่อมต่อกับอุปกรณ์ 1 สายพร้อมตัวอย่างสำหรับเซ็นเซอร์อุณหภูมิ DS18B20 |
pio_blink | ตั้งค่าเครื่อง PIO สถานะบางอย่างเพื่อกะพริบ LED ที่ความถี่ที่แตกต่างกัน |
PWM | การปรับความกว้างพัลส์บน PIO ใช้เพื่อค่อยๆจางหายไปความสว่างของ LED |
SPI | ใช้ PIO เพื่อลบโปรแกรมและอ่านชิป SPI Flash ภายนอก ตัวอย่างที่สองเรียกใช้การทดสอบ loopback ด้วยชุดค่าผสม CPHA/CPOL ทั้งสี่ชุด |
ถากถาง | ขับคลื่นสี่เหลี่ยมจัตุรัสเร็วไปยัง GPIO ตัวอย่างนี้เข้าถึงการลงทะเบียน PIO ระดับต่ำโดยตรงแทนที่จะใช้ฟังก์ชั่น SDK |
Squarewave_div_sync | สร้างคลื่นสี่เหลี่ยมบนสาม GPIOs และซิงโครไนซ์ตัวแบ่งในเครื่องจักรทั้งหมด |
ST7789_LCD | ตั้งค่า PIO สำหรับเอาต์พุตอนุกรม 62.5 Mbps และใช้สิ่งนี้เพื่อแสดงภาพการหมุนบน LCD อนุกรม ST7789 |
quadrature_encoder | ตัวเข้ารหัสสี่เหลี่ยมจัตุรัสโดยใช้ PIO เพื่อรักษาจำนวนที่เป็นอิสระจาก CPU |
quadrature_encoder_substep | การวัดความเร็วความละเอียดสูงโดยใช้ตัวเข้ารหัสสี่เหลี่ยมจัตุรัสมาตรฐาน |
uart_rx | ใช้ส่วนประกอบที่ได้รับของพอร์ตอนุกรม UART แนบไปที่แขนอะไหล่ uart เพื่อดูว่าได้รับอักขระ |
uart_tx | ใช้ส่วนประกอบการส่งของพอร์ตอนุกรม UART และพิมพ์ Hello World |
WS2812 | ตัวอย่างการขับขี่ LED RGB ที่อยู่ได้ WS2812 |
ส่วนที่เพิ่มเข้าไป | เพิ่มจำนวนเต็มสองตัวเข้าด้วยกันโดยใช้ PIO ช้ากว่า Cortex-M0+เพียง 8 พันล้านเท่า |
PWM
แอป | คำอธิบาย |
---|
hello_pwm | ตัวอย่างน้อยที่สุดของการขับเคลื่อนเอาต์พุต PWM บน GPIOS |
led_fade | จางหายไประหว่างความสว่างต่ำและสูง ตัวจัดการขัดจังหวะจะอัปเดตระดับเอาต์พุตของชิ้นส่วน PWM ทุกครั้งที่เคาน์เตอร์ห่อหุ้ม |
mealce_duty_cycle | ขับเคลื่อนเอาต์พุต PWM ในช่วงของรอบการทำงานและใช้ชิ้น PWM อื่นในโหมดอินพุตเพื่อวัดวัฏจักรหน้าที่ |
รีเซ็ต
แอป | คำอธิบาย |
---|
hello_reset | ทำการรีเซ็ตฮาร์ดในอุปกรณ์ต่อพ่วงบางส่วนจากนั้นนำพวกเขากลับมา |
RTC
แอป | คำอธิบาย |
---|
hello_rtc | ตั้งค่าวันที่/เวลาบน RTC จากนั้นพิมพ์เวลาปัจจุบันซ้ำ ๆ 10 ครั้งต่อวินาทีเพื่อแสดงการอัปเดต |
rtc_alarm | ตั้งค่าการเตือนภัยบน RTC เพื่อกระตุ้นการขัดจังหวะในวันที่/เวลา 5 วินาทีในอนาคต |
rtc_alarm_repeat | ทริกเกอร์ RTC ขัดจังหวะหนึ่งครั้งต่อนาที |
Sha-256
แอป | คำอธิบาย |
---|
hello_sha256 | สาธิตวิธีการใช้ไลบรารี PICO_SHA256 เพื่อคำนวณการตรวจสอบโดยใช้ฮาร์ดแวร์ใน RP2350 |
mbedtls_sha256 | สาธิตการใช้การเร่งฮาร์ดแวร์ sha-256 ใน mbedtls |
SPI
แอป | คำอธิบาย |
---|
BME280_SPI | แนบเซ็นเซอร์อุณหภูมิ/ความชื้น/ความดัน BME280 ผ่าน SPI |
MPU9250_SPI | แนบ MPU9250 accelerometer/gyoscope ผ่าน SPI |
spi_dma | ใช้ DMA เพื่อถ่ายโอนข้อมูลทั้งไปและกลับจาก SPI พร้อมกัน SPI ได้รับการกำหนดค่าสำหรับ loopback |
spi_flash | ลบโปรแกรมและอ่านอุปกรณ์แฟลชอนุกรมที่แนบมากับหนึ่งในคอนโทรลเลอร์ SPI |
spi_master_slave | แสดงให้เห็นถึงการสื่อสาร SPI ในฐานะอาจารย์และทาส |
max7219_8x7seg_spi | การแนบ Max7219 การขับรถ 8 หลัก 7 หน้าจอแสดงผลผ่าน SPI |
max7219_32x8_spi | การแนบ Max7219 ขับรถจอ LED 32x8 ผ่าน SPI |
ระบบ
แอป | คำอธิบาย |
---|
boot_info | สาธิตวิธีการอ่านและตีความข้อมูลการบูตข้อมูล SYS |
hello_double_tap | LED กะพริบกับไลบรารี pico_bootsel_via_double_reset เชื่อมโยง สิ่งนี้จะเข้าสู่ USB bootloader เมื่อตรวจพบระบบที่ถูกรีเซ็ตสองครั้งในการสืบทอดอย่างรวดเร็วซึ่งมีประโยชน์สำหรับบอร์ดที่มีปุ่มรีเซ็ต แต่ไม่มีปุ่ม bootsel |
แรน | สาธิตวิธีการใช้ฟังก์ชั่นหมายเลขสุ่ม PICO |
carratter_io_write | แสดงให้เห็นถึงผลกระทบของการเขียน 8 บิตและ 16 บิตในการลงทะเบียน IO 32 บิต |
ไม่ซ้ำกัน _board_id | อ่าน ID 64 บิตที่ไม่ซ้ำกันจากแฟลชภายนอกซึ่งทำหน้าที่เป็นตัวระบุที่ไม่ซ้ำกันสำหรับบอร์ด |
ตัวจับเวลา
แอป | คำอธิบาย |
---|
hello_timer | ตั้งค่าการโทรกลับบนตัวจับเวลาระบบซึ่งทำซ้ำในช่วงเวลาปกติ ยกเลิกตัวจับเวลาเมื่อเราทำเสร็จแล้ว |
periodic_sampler | ตัวอย่าง gpiOs ในการโทรกลับตัวจับเวลาและผลักตัวอย่างไปยังคิวที่ปลอดภัยพร้อมกัน ข้อมูลป๊อปจากคิวในรหัสที่ทำงานอยู่เบื้องหน้า |
timer_lowlevel | ตัวอย่างการเข้าถึงฮาร์ดแวร์ตัวจับเวลาโดยตรง ไม่แนะนำโดยทั่วไปเนื่องจาก SDK อาจใช้ตัวจับเวลาสำหรับการหมดเวลา IO |
uart
แอป | คำอธิบาย |
---|
hello_uart | พิมพ์ข้อความจากหนึ่งในพอร์ตอนุกรม UART โดยไม่ต้องผ่าน stdio |
LCD_UART | แสดงข้อความและสัญลักษณ์บนจอแสดงผล LCD 16x02 RGB ผ่าน UART |
uart_advanced | ใช้คุณสมบัติ UART อื่น ๆ เช่นการขัดจังหวะ RX, การควบคุมฮาร์ดแวร์และรูปแบบข้อมูลอื่นที่ไม่ใช่ 8N1 |
สากล
นี่คือตัวอย่างของวิธีการสร้างไบนารีสากลซึ่งทำงานบน RP2040 และ RP2350 ARM & RISC-V สิ่งเหล่านี้ทำให้คุณต้องตั้งค่า PICO_ARM_TOOLCHAIN_PATH
และ PICO_RISCV_TOOLCHAIN_PATH
เป็นเส้นทางที่เหมาะสมเพื่อให้แน่ใจว่าคุณมีคอมไพเลอร์สำหรับสถาปัตยกรรมทั้งสอง
แอป | คำอธิบาย |
---|
กระพริบตา | เหมือนกับตัวอย่างกะพริบ แต่เป็นสากล |
hello_universal | โปรแกรม Hello World บังคับสำหรับ PICO (USB และผลลัพธ์แบบอนุกรม) ใน RP2350 มันจะรีบูตไปยังสถาปัตยกรรมอื่น ๆ หลังจากพิมพ์ทุก ๆ 10 ภาพ |
nuke_universal | เหมือนกับตัวอย่างของ Nuke แต่เป็นสากล บน RP2350 ทำงานเป็น SRAM Binary แบบบรรจุดังนั้นจึงถูกเขียนขึ้นเพื่อแฟลชและคัดลอกไปยัง SRAM โดย bootloader |
อุปกรณ์ USB
ตัวอย่าง TinyUSB
ตัวอย่างอุปกรณ์ USB ส่วนใหญ่มาจากไดเรกทอรีตัวอย่างอุปกรณ์ TinyUSB โดยตรงที่นี่ ผู้ที่ได้รับการสนับสนุนบนอุปกรณ์ RP2040 จะถูกรวมโดยอัตโนมัติเป็นส่วนหนึ่งของ Pico-Examples Build เป็นเป้าหมายที่ชื่อ tinyusb_dev_<example_name>
เช่น https://github.com/hathach/tinyusb/tree/master/examples/device/hid_composite เป็น tinyusb_dev_hid_composite
ในช่วงเวลาของการเขียนตัวอย่างเหล่านี้มีอยู่:
- tinyUSB_DEV_AUDIO_4_CHANNEL_MIC
- tinyUSB_DEV_AUDIO_TEST
- tinyUSB_DEV_BOARD_TEST
- tinyUSB_DEV_CDC_DUAL_PORTS
- tinyUSB_DEV_CDC_MSC
- tinyUSB_DEV_DFU
- tinyUSB_DEV_DFU_RUNTIME
- tinyUSB_DEV_DYNAMIC_CONFIGURATION
- tinyUSB_DEV_HID_COMPOSIONS
- tinyUSB_DEV_HID_GENERIC_INOUT
- tinyUSB_DEV_HID_MULTIPLE_INTERFACE
- tinyUSB_DEV_MIDI_TEST
- tinyUSB_DEV_MSC_DUAL_LUN
- tinyUSB_DEV_NET_LWIP_WESSERVER
- tinyUSB_DEV_UAC2_HEADSET
- tinyUSB_DEV_USBTMC
- tinyUSB_DEV_VIDEO_CAPTURE
- tinyUSB_DEV_WEBUSB_SERIAL
ในขณะที่ตัวอย่างเหล่านี้แสดงให้เห็นถึงวิธีการใช้ TinyUSB ในโหมดอุปกรณ์ CMakeLists.txt
ของพวกเขาถูกตั้งค่าในลักษณะที่ปรับให้เหมาะกับวิธีการสร้างตัวอย่างของ TinyUSB ภายในต้นไม้ต้นฉบับของพวกเขา
สำหรับตัวอย่างที่ดีกว่าของวิธีการกำหนดค่า CMakeLists.txt
สำหรับการใช้ TinyUSB ในโหมดอุปกรณ์กับ Raspberry Pi SDK ดูด้านล่าง:
ตัวอย่างการสร้าง SDK
แอป | คำอธิบาย |
---|
dev_hid_composite | สำเนาตัวอย่างอุปกรณ์ TinyUSB ที่มีชื่อเดียวกัน แต่ด้วย cmakelists.txt ซึ่งแสดงให้เห็นถึงวิธีการเพิ่มการพึ่งพาในไลบรารีอุปกรณ์ TinyUSB ด้วย Raspberry Pi Pico SDK |
ตัวอย่างระดับต่ำ
แอป | คำอธิบาย |
---|
dev_lowlevel | USB Bull Loopback นำมาใช้กับการเข้าถึงฮาร์ดแวร์ USB โดยตรง (ไม่มี TinyUSB) |
โฮสต์ USB
ตัวอย่างโฮสต์ USB ทั้งหมดมาจากไดเรกทอรีตัวอย่างโฮสต์ TinyUSB โดยตรงที่นี่ ผู้ที่ได้รับการสนับสนุนบนอุปกรณ์ RP2040 จะถูกรวมโดยอัตโนมัติเป็นส่วนหนึ่งของ Pico-Examples Build เป็นเป้าหมายที่ชื่อ tinyusb_host_<example_name>
เช่น https://github.com/hathach/tinyusb/tree/master/examples/host/cdc_msc_hid เป็น tinyusb_host_cdc_msc_hid
ในขณะที่เขียนมีเพียงตัวอย่างโฮสต์เดียวเท่านั้น:
โหมดคู่ USB
USB Dual Mode ใช้ PIO เป็นตัวควบคุมโฮสต์ USB และตัวควบคุมอุปกรณ์ RP2040 USB เป็นตัวควบคุมอุปกรณ์ ตัวอย่างคู่ USB ทั้งหมดมาจากไดเรกทอรีตัวอย่างคู่ TinyUSB โดยตรงที่นี่ ผู้ที่ได้รับการสนับสนุนบนอุปกรณ์ RP2040 จะถูกรวมโดยอัตโนมัติเป็นส่วนหนึ่งของ Pico-Examples สร้างเป็นเป้าหมายที่ชื่อ tinyusb_dual_<example_name>
เช่น https://github.com/hathach/tinyusb/tree/master/examples/dual/host_hid_to_did เช่น tinyusb_dual_host_hid_to_device_cdc
ในช่วงเวลาของการเขียนมีเพียงตัวอย่างเดียวเท่านั้น:
- tinyUSB_DUAL_HOST_HID_TO_DEVICE_CDC
สุนัขเฝ้าบ้าน
แอป | คำอธิบาย |
---|
hello_watchdog | ตั้งค่าตัวจับเวลา Watchdog และปล่อยให้มันหมดอายุ ตรวจจับการรีบูตและหยุด |