Raspberry Pi RP2350 Pico SDK Ejemplos - Acceso temprano
Instrucciones RP2350
Todo debajo de esta sección es de las pruebas de pico stock, así que ignore las URL, etc., pero generalmente las instrucciones son las mismas.
El valor predeterminado de Pico SDK continúa siendo construir para RP2040 (Pico_platform = RP2040), por lo que para construir para RP2350, debe pasar -DPICO_PLATFORM=rp2350 a CMake (o -DPICO_PLATFORM=rp2350-riscv para RISC -V).
La mayoría, pero no todos los ejemplos, actualmente funcionan en RP2350, sin embargo, debería poder hacer una compilación completa con cualquiera de las plataformas anteriores (Pico_platform = Host, sin embargo, actualmente falla en algunos ejemplos)
Para la compilación RISC-V, debe tomar un compilador desde aquí: https://www.embecosm.com/resources/tool-hain-dowloads/#riscv-stable
Documentos originales de pruebas de pico
Empezando
Vea comenzar con el Raspberry Pi Pico y el Readme en el Pico-SDK para obtener información sobre cómo poner en marcha.
Primeros ejemplos
| Aplicación | Descripción | Enlace a UF2 prebuilt |
|---|
| hola_serial | El Programa Obligatorio Hello World para PICO (Output Over Serial Version) | |
| hola_usb | El Programa Obligatorio Hello World para PICO (salida a través de la versión USB) | https://rptl.io/pico-hello-usb |
| parpadear | Parpadea un LED encendido y apagado. Funciona en ambos tableros con LED regulares y Pico W | https://rptl.io/pico-Blink |
| Blink_simple | Parpadea un LED encendido y apagado. No funciona en Pico W. | https://rptl.io/pico-Blink |
| Picow_blink | Parpadea el LED a bordo Pico W (que está conectado a través del chip Wifi). | http://rptl.io/pico-w-blink |
ADC
| Aplicación | Descripción |
|---|
| hola_adc | Muestre el voltaje de una entrada ADC. |
| joystick_display | Muestre una entrada de joystick x/y basada en dos entradas ADC. |
| adc_console | Un caparazón interactivo para jugar con el ADC. Incluye un ejemplo de modo de captura de carrera libre. |
| a bordo_temperatura | Muestre el valor del sensor de temperatura a bordo. |
| micrófono_adc | Lea los valores analógicos de un micrófono y traza la amplitud del sonido medida. |
| dma_capture | Use el DMA para capturar muchas muestras del ADC. |
| Read_vsys | Demuestra cómo leer VSYS para obtener el voltaje de la fuente de alimentación. |
Cargadores de arranque (solo RP2350)
| Aplicación | Descripción |
|---|
| Enc_bootloader | Un gestor de arranque que descifra binarios de Flash a SRAM. Consulte el ReadMe separado para obtener más información |
Relojes
| Aplicación | Descripción |
|---|
| hola_48mhz | Cambie la frecuencia del reloj del sistema a 48 MHz mientras se ejecuta. |
| hola_gpout | Use las salidas de reloj de propósito general (GPOut) para impulsar las divisiones de relojes internos en salidas GPIO. |
| hola_resus | Habilite la función de reanimación del reloj, "accidentalmente" detenga el reloj del sistema y muestre cómo nos recuperamos. |
| DETACHED_CLK_PERI | Separar el reloj periférico y variar el reloj del sistema. |
CMake
| Aplicación | Descripción |
|---|
| build_variants | Construye dos versión de la misma aplicación con diferentes configuraciones |
DCP
| Aplicación | Descripción |
|---|
| hola_dcp | Use el coprocesador de doble precisión directamente en el ensamblador. |
DMA
| Aplicación | Descripción |
|---|
| hola_dma | Use el DMA para copiar datos en la memoria. |
| control_blocks | Cree una lista de bloques de control, para programar una secuencia más larga de transferencias DMA al UART. |
| Channel_irq | Use un controlador IRQ para reconfigurar un canal DMA, para impulsar continuamente los datos a través de una máquina de estado PIO. |
| sniff_crc | Use la capacidad de 'sniff' del motor DMA para calcular un CRC32 en un búfer de datos. |
Hstx
| Aplicación | Descripción |
|---|
DVI_OUT_HSTX_ENCODER RP2350 | Use el HSTX para emitir una señal DVI con 3: 3: 2 RGB |
Destello
| Aplicación | Descripción |
|---|
| cache_perfctr | Lea y borre los contadores de rendimiento de caché. Muestre cómo se ven afectados por diferentes tipos de lecturas flash. |
| nuclear | Borde el contenido del flash. Un ejemplo de un binario no_flash (UF2 cargado directamente en SRAM y se ejecuta en el lugar allí). Una utilidad útil para arrastrar y caer en su PICO si surge la necesidad. |
| programa | Borrar un sector flash, programar una página flash y leer los datos. |
| xip_stream | Transmitir datos utilizando el hardware de flujo XIP, que permite que los datos se dman en segundo plano mientras se ejecuta el código de Flash. |
| ssi_dma | DMA directamente desde la interfaz Flash (marcación continua de SCK) para obtener el máximo rendimiento de lectura a granel. |
| runtime_flash_permissions | Demuestra agregar particiones en tiempo de ejecución para cambiar los permisos de flash |
Freertos
Estos ejemplos requieren que establezca el FREERTOS_KERNEL_PATH para apuntar al núcleo de Fretos. Ver https://github.com/freertos/freertos-kernel
| Aplicación | Descripción |
|---|
| hola_freertos | Ejemplos que demuestran cómo ejecutar freertos y tareas en 1 o 2 núcleos. |
GPIO
| Aplicación | Descripción |
|---|
| hello_7 segmento | Use los GPIOS para conducir una pantalla LED de siete segmentos. |
| hola_gpio_irq | Registre un controlador de interrupción para que se ejecute cuando se alterne un GPIO. |
| dht_sensor | Use GPIO para bitbang el protocolo serie para un sensor de temperatura/humedad DHT. |
Ver también: Blink, parpadeando un LED unido a un GPIO.
Divisor de HW
| Aplicación | Descripción |
|---|
| hola_divider | Muestre cómo acceder directamente a los divisores enteros de hardware, en caso de que la inyección de AEABI esté deshabilitada. |
I2C
| Aplicación | Descripción |
|---|
| bus_scan | Escanee el bus I2C para obtener dispositivos y muestre resultados. |
| BMP280_I2C | Lea y convierta los datos de temperatura y presión de un sensor BMP280, unido a un bus I2C. |
| LCD_1602_I2C | Muestre algún texto en una pantalla LCD de caracteres genérico de 16x2, a través de I2C. |
| LIS3DH_I2C | Lea el valor de aceleración y temperatura de un sensor LIS3DH a través de I2C |
| MCP9808_I2C | Lea la temperatura, establezca los límites y aumente las alertas cuando se superen los límites. |
| MMA8451_I2C | Lea la aceleración de un acelerómetro MMA8451 y establece el rango y precisión para los datos. |
| MPL3115A2_I2C | Interfaz con un altímetro MPL3115A2, explorando interrupciones y características avanzadas de tablero, a través de I2C. |
| MPU6050_I2C | Lea los valores de aceleración y velocidad angular de un acelerómetro/girómetro MPU6050, unido a un bus I2C. |
| SSD1306_I2C | Convertir y mostrar un mapa de bits en una pantalla OLED impulsada por el SSD1306 de 128x32 o 128x64 |
| PA1010D_I2C | Lea datos de ubicación GPS, analice y muestre datos a través de I2C. |
| PCF8523_I2C | Lea los valores de la hora y la fecha de un reloj en tiempo real. Establezca la hora actual y las alarmas. |
| ht16k33_i2c | Conduce un LED de 4 dígitos de 14 segmentos con un HT16K33. |
| slave_mem_i2c | Ejemplo de esclavo I2C donde el esclavo implementa una memoria de 256 bytes |
Interpolador
| Aplicación | Descripción |
|---|
| hola_interp | Un paquete de pequeños ejemplos, que muestra cómo acceder al hardware del interpolador local-local y utilizar la mayoría de sus características. |
Multicore
| Aplicación | Descripción |
|---|
| hola_multicore | Inicie una función en el segundo núcleo, imprima algunos mensajes en cada núcleo y pase los datos de un lado a otro a través del buzón FIFOS. |
| multicore_fifo_irqs | En cada núcleo, registre e interrumpe el controlador para el buzón FIFOS. Muestre cómo la interrupción dispara cuando ese núcleo recibe un mensaje. |
| multicore_runner | Configure el segundo núcleo para aceptar y ejecutar cualquier puntero de función empujado a su buzón FIFO. Empuje unas pocas piezas de código y obtenga respuestas de regreso. |
| multicore_doorbell | Reclama dos timbres para señalar entre los núcleos. Cuenta cuántos irqs de timbre ocurren en el segundo núcleo y usa timbres para coordinar la salida. |
OTP
| Aplicación | Descripción |
|---|
| hola_otp | Demuestre lectura y escritura del OTP en RP2350, junto con algunas de las características de OTP (corrección de errores y bloqueo de páginas). |
Pico
| Aplicación | Descripción |
|---|
| parpadeo | Blink "Hola, mundo" en el código Morse en el LED de Pico |
| botón | Use el botón Bootsel de Pico como una entrada de botón regular, suspendiendo temporalmente el acceso flash. |
Pico W Networking
Estos ejemplos son para Pico W, y solo están disponibles para PICO_BOARD=pico_w
| Aplicación | Descripción |
|---|
| PICOW_ACCESS_POINT | Inicia un punto de acceso WiFi y las solicitudes DHCP de los campos. |
| Picow_blink | Parpadea el LED integrado (que está conectado a través del chip Wifi). |
| picow_blink_slow_clock | Parpadea el LED integrado (que está conectado a través del chip wifi) con un reloj de sistema más lento para mostrar cómo reconfigurar la comunicación con el chip wifi en esas circunstancias |
| PICOW_IPERF_SERVER | Ejecuta un servidor "IPerf" para pruebas de velocidad WiFi. |
| picow_ntp_client | Se conecta a un servidor NTP para obtener y mostrar la hora actual. |
| picow_tcp_client | Un cliente TCP simple. Puede ejecutar python_test_tcp_server.py para que se conecte. |
| PICOW_TCP_SERVER | Un servidor TCP simple. Puede usar python_test_tcp_client.py para conectarse a él. |
| picow_tls_client | Demuestra cómo hacer una solicitud HTTPS usando TLS. |
| picow_tls_verify | Demuestra cómo hacer una solicitud HTTPS utilizando TLS con verificación de certificado. |
| PICOW_WIFI_SCAN | Escaneos para redes WiFi e imprime los resultados. |
| picow_udp_beacon | Un transmisor UDP simple. |
| PICOW_HTTPD | Ejecuta una aplicación de prueba de servidor LWIP HTTP |
Ejemplos de Freertos
Estos son ejemplos de integración de redes PICO W bajo Freertos, y requieren que establezca el FREERTOS_KERNEL_PATH para apuntar al núcleo de Fretos. Ver https://github.com/freertos/freertos-kernel
| Aplicación | Descripción |
|---|
| PICOW_FREERTOS_IPERF_SERVER_NOSYS | Ejecuta un servidor "IPerf" para pruebas de velocidad WiFi en Freertos en el modo NO_SYS = 1. El LED se parpadea en otra tarea |
| PICOW_FREERTOS_IPERF_SERVER_SYS | Ejecuta un servidor "IPerf" para pruebas de velocidad WiFi en Freertos en no_sys = 0 (es decir, el modo completo de integración de fretos). El LED se parpadea en otra tarea |
| PICOW_FREERTOS_PING_NOSYS | Ejecuta la aplicación LWIP-Contrib/Apps/Ping Test en FreERtos en el modo NO_SYS = 1. |
| PICOW_FREERTOS_PING_SYS | Ejecuta la aplicación LWIP-Contrib/Apps/Ping Test en Freertos en no_sys = 0 (es decir, el modo completo de integración de fretos). La aplicación de prueba utiliza la API del socket LWIP en este caso. |
| picow_freertos_ntp_client_socket | Se conecta a un servidor NTP utilizando la API de socket LWIP con FreERTOS en el modo NO_SYS = 0 (es decir, integración completa de Freertos). |
| pico_freertos_httpd_nosys | Ejecuta una aplicación de prueba de servidor HTTP LWIP en FreERtos en el modo NO_SYS = 1. |
| pico_freertos_httpd_sys | Ejecuta una aplicación de prueba del servidor HTTP LWIP en FreERtos en no_sys = 0 (es decir, el modo completo de integración de fretos). |
Pico w bluetooth
Estos ejemplos son para Pico W, y solo están disponibles para PICO_BOARD=pico_w . Son ejemplos de Blue Kitchen Bluetooth Stack, ver aquí para obtener una descripción completa.
Por defecto, los ejemplos de Bluetooth solo están construidos en un solo "modo" ( fondo , encuesta o fretos ), siendo el fondo predeterminado. Esto se puede cambiar pasando -DBTSTACK_EXAMPLE_TYPE=poll , etc. a CMake , o todos los ejemplos se pueden construir (que pueden ser lentos) pasando -DBTSTACK_EXAMPLE_TYPE=all las versiones de Freertos solo se pueden construir si se define FREERTOS_KERNEL_PATH .
Los ejemplos de Bluetooth que usan audio requieren código en Pico-Extras. Pass -DPICO_EXTRAS_PATH=${HOME}/pico-extras en la línea de comandos cmake o defina PICO_EXTRAS_PATH=${HOME}/pico-extras en su entorno y vuelva a ejecutar cmake para incluirlos en la construcción.
| Aplicación | Descripción |
|---|
| picow_bt_example_a2dp_sink_demo | A2DP Sink - Reciba la transmisión de audio y la reproducción de control. |
| picow_bt_example_a2dp_source_demo | Fuente A2DP: transmisión de audio y volumen de control. |
| picow_bt_example_ancs_client_demo | LE ANCS Cliente - Servicio de notificación de Apple. |
| picow_bt_example_att_delayed_response | Le Periférico - Respuesta retrasada. |
| picow_bt_example_audio_duplex | Controlador de audio: reenvía el audio de la fuente al fregadero. |
| picow_bt_example_avrcp_browsing_client | Navegación AVRCP - Explorar reproductores multimedia e información de medios. |
| picow_bt_example_dut_mode_classic | Prueba: habilite el dispositivo en modo Test (Dut.C) para Classic. |
| picow_bt_example_gap_dedicate_bonding | Unión de brecha |
| picow_bt_example_gap_inquiry | Gap Classic Consulty. |
| picow_bt_example_gap_le_advertisements | GAP LE Anuncios del escáner. |
| picow_bt_example_gap_link_keys | GAB LINK LECK Management (Classic.c). |
| picow_bt_example_gatt_battery_query | Cliente de servicio de batería GATT. |
| picow_bt_example_gatt_browser | Cliente GATT - Descubra los servicios primarios. |
| picow_bt_example_gatt_counter | Servidor GATT - contador lateral sobre GATT. |
| picow_bt_example_gatt_device_information_query | Cliente de servicio de información del dispositivo GATT. |
| picow_bt_example_gatt_heart_rate_client | Sensor de frecuencia cardíaca GATT. |
| picow_bt_example_gatt_streamer_server | Rendimiento: transmitir datos sobre GATT (server.c). |
| picow_bt_example_hfp_ag_demo | HFP AG - Audio Gateway. |
| picow_bt_example_hfp_hf_demo | HFP HF - manos libres. |
| picow_bt_example_hid_host_demo | Hid Host Classic. |
| picow_bt_example_hid_keyboard_demo | Hid Keyboard Classic. |
| picow_bt_example_hid_mouse_demo | Hid Mouse Classic. |
| picow_bt_example_hog_boot_host_demo | Hid Boot Host LE. |
| picow_bt_example_hog_host_demo | Hid anfitrión LE. |
| picow_bt_example_hog_keyboard_demo | Hid Keyboard LE. |
| picow_bt_example_hog_mouse_demo | Hid mouse le. |
| picow_bt_example_hsp_ag_demo | HSP AG - Audio Gateway. |
| picow_bt_example_hsp_hs_demo | HSP HS - auriculares. |
| picow_bt_example_le_credit_based_flow_control_mode_client | LE Cliente de modo de control de flujo basado en crédito: envíe datos a través de L2CAP. |
| picow_bt_example_le_credit_based_flow_control_mode_server | Servidor de modo de control de flujo basado en crédito LE: reciba datos a través de L2CAP. |
| picow_bt_example_led_counter | Hola Mundo - Parpadeando un LED sin Bluetooth. |
| picow_bt_example_le_mitm | LE Man-in-the-Middle Tool. |
| picow_bt_example_le_streamer_client | Rendimiento: transmitir datos sobre GATT (Client.C). |
| picow_bt_example_mod_player | Audio Driver - Reproducir la canción de modificación de los 80. |
| picow_bt_example_nordic_spp_le_counter | LE Nordic SPP-Like Heartbeat Server. |
| picow_bt_example_nordic_spp_le_streamer | LE Nordic SPP-Like Streamer Server. |
| picow_bt_example_sdp_general_query | Cliente SDP - Registros SDP remotos de consulta. |
| picow_bt_example_sdp_rfcomm_query | Cliente SDP - Consulta RFCOMM SDP Registro. |
| picow_bt_example_sine_player | Conductor de audio - Reproducir sine. |
| picow_bt_example_sm_pairing_central | LE Central - Métodos de emparejamiento de pruebas. |
| picow_bt_example_sm_pairing_peripheral | LE Periférico - Métodos de emparejamiento de pruebas. |
| picow_bt_example_spp_and_gatt_counter | Modo dual: contador SPP y LE. |
| picow_bt_example_spp_and_gatt_streamer | Modo dual: spp y le streamer. |
| picow_bt_example_spp_counter | Servidor SPP - contador del corazón a través de RFCOMM. |
| picow_bt_example_spp_flowcontrol | Servidor SPP - Control de flujo RFCOMM. |
| picow_bt_example_spp_streamer_client | Rendimiento: transmitir datos a través de SPP (Client.C). |
| picow_bt_example_spp_streamer | Rendimiento: transmitir datos a través de SPP (server.c). |
| PICOW_BT_EXAMPLE_ULTOX_SPP_LE_COUNTER | LE U-BLOX SPART SPARTBEAT-Like Heartbeat. |
También están disponibles algunos ejemplos de Bluetooth independientes (sin todo el ejemplo de Infraestructura de construcción común):
| Aplicación | Descripción |
|---|
| picow_ble_temp_sensor | Lee del sensor de temperatura de la placa y envía notificaciones a través de BLE |
| picow_ble_temp_sensor_with_wifi | Igual que el anterior, pero también se conecta a Wi-Fi e inicia un servidor "IPerf" |
| picow_ble_temp_reader | Se conecta a uno de los "sensores" anteriores y lee la temperatura |
Pio
| Aplicación | Descripción |
|---|
| hola_pio | Ejemplo absolutamente mínimo que muestra cómo controlar un LED empujando los valores en un PIO FIFO. |
| APA102 | Patrón de arco iris en una cadena de LED RGB direccionables APA102. |
| Clocked_input | Cambio de datos en serie, muestreo con un reloj externo. |
| diferencial_manchester | Enviar y recibir una serie diferencial codificada con Manchester (BMC). |
| Hub75 | Muestre una imagen en una matriz LED RGB de 128x64 HUB75. |
| I2C | Escanee un bus I2C. |
| ir_nec | Enviar y recibir códigos IR (infra-rojo) utilizando el PIO. |
| Logic_analyser | Use PIO y DMA para capturar un rastro lógico de algunos GPIOS, mientras que una unidad PWM los está conduciendo. |
| manchester_encoding | Enviar y recibir una serie codificada con Manchester. |
| Onewire | Una biblioteca para interfaz de dispositivos de 1 alambre, con un ejemplo para el sensor de temperatura DS18B20. |
| pio_blink | Configure algunas máquinas de estado de PIO para parpadear LED a diferentes frecuencias, de acuerdo con los recuentos de retrasos empujados a sus FIFO. |
| PWM | Modulación de ancho de pulso en PIO. Úselo para desvanecer gradualmente el brillo de un LED. |
| SPI | Use PIO para borrar, programar y leer un chip de flash SPI externo. Un segundo ejemplo ejecuta una prueba de loopback con las cuatro combinaciones CPHA/CPOL. |
| onda cuadrada | Conduce una onda cuadrada rápida sobre un GPIO. Este ejemplo accede a los registros de PIO de bajo nivel directamente, en lugar de usar las funciones SDK. |
| SquareWave_Div_Sync | Genera una onda cuadrada en tres gpios y sincroniza el divisor en todas las máquinas de estado |
| ST7789_LCD | Configure PIO para una salida en serie de 62.5 Mbps y use esto para mostrar una imagen giratoria en una LCD serie ST7789. |
| quadrature_encoder | Un codificador de cuadratura que usa PIO para mantener los recuentos independientes de la CPU. |
| quadrature_encoder_substep | Medición de velocidad de alta resolución utilizando un codificador de cuadratura estándar |
| uart_rx | Implemente el componente de recepción de un puerto serie UART. Adjuntarlo al brazo de repuesto UART para ver que reciba caracteres. |
| uart_tx | Implemente el componente de transmisión de un puerto serie UART e imprima Hello World. |
| WS2812 | Ejemplos de conducción de LED RGB direccionables WS2812. |
| suma | Agregue dos enteros juntos usando PIO. Solo alrededor de 8 mil millones de veces más lento que Cortex-M0+. |
PWM
| Aplicación | Descripción |
|---|
| hola_pwm | Ejemplo mínimo de conducir la salida PWM en GPIOS. |
| LED_FADE | Desvanecer un LED entre un brillo bajo y alto. Un controlador de interrupción actualiza el nivel de salida de PWM Slice cada vez que el contador se envuelve. |
| medir_duty_cycle | Impulsa una salida de PWM en una variedad de ciclos de trabajo y utiliza otra porción PWM en el modo de entrada para medir el ciclo de trabajo. |
Reiniciar
| Aplicación | Descripción |
|---|
| hola_reset | Realice un reinicio duro en algunos periféricos, luego vuelva a crecerlos. |
RTC
| Aplicación | Descripción |
|---|
| hola_rtc | Establezca una fecha/hora en el RTC, luego imprima repetidamente la hora actual, 10 veces por segundo, para mostrarle la actualización. |
| rtc_alarm | Establezca una alarma en el RTC para activar una interrupción en una fecha/hora 5 segundos en el futuro. |
| RTC_ALARM_REPEAT | Activar una interrupción RTC una vez por minuto. |
SHA-256
| Aplicación | Descripción |
|---|
| hola_sha256 | Demuestra cómo usar la biblioteca Pico_Sha256 para calcular una suma de verificación usando el hardware en RP2350 |
| mbedtls_sha256 | Demuestra el uso de la aceleración de hardware SHA-256 en MBedTLS |
SPI
| Aplicación | Descripción |
|---|
| bme280_spi | Conecte un sensor de temperatura/humedad/presión BME280 a través de SPI. |
| MPU9250_SPI | Adjunte un acelerómetro/gioscopio MPU9250 a través de SPI. |
| spi_dma | Use DMA para transferir datos tanto hacia y desde el SPI simultáneamente. El SPI está configurado para Loopback. |
| spi_flash | Borrar, programar y leer un dispositivo flash en serie conectado a uno de los controladores SPI. |
| spi_master_lave | Demuestre la comunicación SPI como maestro y esclavo. |
| max7219_8x7seg_spi | Adjuntar un MAX7219 conduciendo una pantalla de segmento 7 de 8 dígitos a través de SPI |
| Max7219_32x8_spi | Ajustar un MAX7219 conduciendo una pantalla LED de 32x8 a través de SPI |
Sistema
| Aplicación | Descripción |
|---|
| boot_info | Demuestre cómo leer e interpretar la información de arranque de información SYS. |
| hola_double_tap | Un LED parpadea con la biblioteca pico_bootsel_via_double_reset vinculada. Esto ingresa al gestor de arranque USB cuando detecta que el sistema se restablece dos veces en una sucesión rápida, lo cual es útil para tableros con un botón de reinicio pero sin botón Bootsel. |
| rand | Demuestre cómo usar las funciones de número aleatorio PICO. |
| estrecho_io_write | Demuestre los efectos de las escrituras de 8 y 16 bits en un registro IO de 32 bits. |
| único_board_id | Lea la identificación única de 64 bits de Flash externo, que sirve como un identificador único para la placa. |
Minutero
| Aplicación | Descripción |
|---|
| hola_timer | Establezca devoluciones de llamada en el temporizador del sistema, que se repiten a intervalos regulares. Cancelar el temporizador cuando hayamos terminado. |
| periódico | Muestre GPIOS en una devolución de llamada de temporizador y empuje las muestras a una cola segura de concurrencia. Pop datos de la cola en código que se ejecuta en primer plano. |
| timer_lowlevel | Ejemplo de acceso directo al hardware del temporizador. No se recomienda generalmente, ya que el SDK puede usar el temporizador para tiempos de espera de IO. |
Uart
| Aplicación | Descripción |
|---|
| hola_uart | Imprima algún texto de uno de los puertos serie UART, sin pasar por stdio . |
| LCD_UART | Mostrar texto y símbolos en una pantalla LCD RGB 16x02 a través de UART |
| Uart_Advanced | Use algunas otras características de UART como interrupciones RX, flujo de control de hardware y formatos de datos distintos de 8N1. |
Universal
Estos son ejemplos de cómo construir binarios universales que se ejecutan en RP2040 y RP2350 ARM & RISC-V. Estos requieren que establezca PICO_ARM_TOOLCHAIN_PATH y PICO_RISCV_TOOLCHAIN_PATH en rutas apropiadas, para garantizar que tenga compiladores para ambas arquitecturas.
| Aplicación | Descripción |
|---|
| parpadear | Igual que el ejemplo de parpadeo, pero universal. |
| hola_universal | El Programa Obligatorio Hello World para PICO (USB y salida en serie). En RP2350 se reiniciará a la otra arquitectura después de cada 10 impresiones. |
| nuke_universal | Igual que el ejemplo nuclear, pero universal. En RP2350 se ejecuta como un binario SRAM empaquetado, por lo que está escrito para flash y copia a SRAM por el gestor de arranque |
Dispositivo USB
Ejemplos de TinyusB
La mayoría de los ejemplos de dispositivos USB provienen directamente del directorio de ejemplos de dispositivos TinyusB aquí. Aquellos que se admiten en dispositivos RP2040 se incluyen automáticamente como parte de la compilación de Pico-Examples como objetivos llamados tinyusb_dev_<example_name> como tinyusb_dev_hid_composite .
Al momento de escribir, estos ejemplos están disponibles:
- 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_Composite
- tinyusb_dev_hid_generic_inout
- tinyusb_dev_hid_multiple_interface
- tinyusb_dev_midi_test
- tinyusb_dev_msc_dual_lun
- tinyusb_dev_net_lwip_webserver
- tinyusb_dev_uac2_headset
- tinyusb_dev_usbtmc
- tinyusb_dev_video_capture
- tinyusb_dev_webusb_serial
Si bien estos ejemplos demuestran hábilmente cómo usar TinyusB en el modo de dispositivo, sus CMakeLists.txt se establece de una manera adaptada a cómo TinyusB construye sus ejemplos dentro de su árbol fuente.
Para obtener un mejor ejemplo de cómo configurar CMakeLists.txt para usar TinyusB en modo de dispositivo con el Raspberry Pi SDK ver a continuación:
Ejemplo de construcción de SDK
| Aplicación | Descripción |
|---|
| dev_hid_composite | Una copia del ejemplo del dispositivo TinyusB con el mismo nombre, pero con una CMAKELISTS.txt que demuestra cómo agregar una dependencia de las bibliotecas del dispositivo TinyusB con el Raspberry Pi Pico SDK |
Ejemplo de bajo nivel
| Aplicación | Descripción |
|---|
| dev_lowlevel | Un bucleback a granel USB implementado con acceso directo al hardware USB (no TinyUsB) |
Host USB
Todos los ejemplos de host USB provienen directamente del directorio de ejemplos de host TinyusB aquí. Aquellos que están compatibles con los dispositivos RP2040 se incluyen automáticamente como parte de la compilación Pico-Examples como objetivos llamados tinyusb_host_<example_name> , por ejemplo, https://github.com/hathach/tinyusb/tree/master/examples/host/cdc_msc_hid está construido como tinyusb_host_cdc_msc_hid .
Al momento de escribir, solo hay un ejemplo de anfitrión disponible:
Modo dual USB
El modo Dual USB utiliza PIO como controlador de host USB y el controlador de dispositivo USB RP2040 como controlador de dispositivo. Todos los ejemplos duales USB provienen directamente del directorio de ejemplos TinyusB aquí. Aquellos que están compatibles con los dispositivos RP2040 se incluyen automáticamente como parte de la compilación Pico-Example como objetivos llamados tinyusb_dual_<example_name> , por ejemplo, https://github.com/hathach/tinyusb/tree/Master/examples/dual/host_hid_to_device_cdc se construye que se construye se construye. como tinyusb_dual_host_hid_to_device_cdc .
Al momento de escribir, solo hay un doble ejemplo disponible:
- tinyusb_dual_host_hid_to_device_cdc
Perro guardián
| Aplicación | Descripción |
|---|
| hola_watchdog | Establezca el temporizador Watchdog y déjelo expirar. Detectar el reinicio y detenerse. |