hardware-resets
硬件复位 API。
详细描述
复位控制器允许通过软件控制 RP 系列微控制器中所有非启动处理器所必需的外设的复位。
reset_bitmask
使用位掩码引用多个块,格式如下:
对于 RP2040:
| 要复位的块 | 位 |
|---|---|
| USB | 24 |
| UART 1 | 23 |
| UART 0 | 22 |
| Timer | 21 |
| TB Manager | 20 |
| SysInfo | 19 |
| System Config | 18 |
| SPI 1 | 17 |
| SPI 0 | 16 |
| RTC | 15 |
| PWM | 14 |
| PLL USB | 13 |
| PLL System | 12 |
| PIO 1 | 11 |
| PIO 0 | 10 |
| Pads - QSPI | 9 |
| Pads - Bank 0 | 8 |
| JTAG | 7 |
| IO QSPI | 6 |
| IO Bank 0 | 5 |
| I2C 1 | 4 |
| I2C 0 | 3 |
| DMA | 2 |
| Bus Control | 1 |
| ADC 0 | 0 |
对于 RP2350:
| 要复位的块 | 位 |
|---|---|
| USB | 28 |
| UART 1 | 27 |
| UART 0 | 26 |
| TRNG | 25 |
| Timer 1 | 24 |
| Timer 0 | 23 |
| TB Manager | 22 |
| SysInfo | 21 |
| System Config | 20 |
| SPI 1 | 19 |
| SPI 0 | 18 |
| SHA256 | 17 |
| PWM | 16 |
| PLL USB | 15 |
| PLL System | 14 |
| PIO 2 | 13 |
| PIO 1 | 12 |
| PIO 0 | 11 |
| Pads - QSPI | 10 |
| Pads - Bank 0 | 9 |
| JTAG | 8 |
| IO QSPI | 7 |
| IO Bank 0 | 6 |
| I2C 1 | 5 |
| I2C 0 | 4 |
| HSTX | 3 |
| DMA | 2 |
| Bus Control | 1 |
| ADC 0 | 0 |
示例
// hello_reset.c
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/resets.h"
int main() {
stdio_init_all();
printf("Hello, reset!\n");
// Put the PWM block into reset
reset_block_num(RESET_PWM);
// And bring it out
unreset_block_num_wait_blocking(RESET_PWM);
// Put the PWM and ADC block into reset
reset_block_mask((1u << RESET_PWM) | (1u << RESET_ADC));
// Wait for both to come out of reset
unreset_block_mask_wait_blocking((1u << RESET_PWM) | (1u << RESET_ADC));
return 0;
}
类型定义
typedef enum reset_num_rp2040 reset_num_t RP2040
RP2040 上可复位的组件编号(用作 typedef reset_num_t)
typedef enum reset_num_rp2350 reset_num_t RP2350
RP2350 上可复位的组件编号(用作 typedef reset_num_t)