rockchip 复位方式全面解析-爱代码爱编程
Rockchip 复位方式全面解析
在单片机开发中,复位功能是非常重要的。而 Rockchip 是很多智能设备和嵌入式系统中使用的芯片。本文将详细介绍 Rockchip 的复位方式,并附上相关源代码。
- 外部复位引脚
Rockchip 的外部复位引脚为 NRST,当引脚被拉低时,芯片将进行复位。以下是使用外部复位的示例代码:
#define NRST_PIN 13 // 外部复位引脚号
...
void setup() {
pinMode(NRST_PIN, OUTPUT);
}
...
void reset() {
digitalWrite(NRST_PIN, LOW); // 拉低 NRST 引脚
delay(100); // 持续时间
digitalWrite(NRST_PIN, HIGH); // 恢复 NRST 引脚高电平
}
- 系统复位寄存器
Rockchip 的系统复位寄存器为 CRU_GLB_SRST_FST_VALUE,通过设置相应的位可以实现系统复位。以下是使用系统复位寄存器的示例代码:
#define CRU_REG_BASE_ADDR 0x20000000 // CRU 寄存器基地址
#define CRU_GLB_SRST_FST_OFST 0x224 // CRU_GLB_SRST_FST_VALUE 偏移
#define CRU_GLB_SRST_FST_VALUE 0x80000000 // 复位寄存器值
volatile uint32_t * const CRU_GLB_SRST_FST_REG = (uint32_t*)(CRU_REG_BASE_ADDR + CRU_GLB_SRST_FST_OFST);
...
void reset() {
*CRU_GLB_SRST_FST_REG |= CRU_GLB_SRST_FST_VALUE; // 设置复位位
}