RCC->AHBRSTR
时间: 2023-11-23 08:56:02 浏览: 50
根据提供的引用内容,RCC->AHBRSTR是STM32中的一个寄存器,用于复位AHB总线上的各种外设。如果需要将AHB总线上的某个外设进行复位,可以将对应的位设置为1。例如,如果需要将DMA2进行复位,可以使用以下代码:
```c
RCC->AHBRSTR |= RCC_AHBRSTR_DMA2RST;
```
其中,RCC_AHBRSTR_DMA2RST是一个宏定义,表示DMA2的复位位。
相关问题
void SystemInit(void) { u32 timeout; /* Enable HSI */ RCC->CR = 0x00000001; RCC->CFGR &= (uint32_t)0xF8FFB80C; timeout = 2000; while((!(RCC->CR & 0x00000002)) && (timeout--)); RCC->CFGR2 = RCC_CFGR_PPRE_DIV1; /* Enable HSE */ RCC->CR |= 0x00010000; timeout = 2000; while((!(RCC->CR & 0x00020000)) && (timeout--)); /* Enable Prefetch Buffer and set Flash Latency */ FLASH->ACR |= FLASH_ACR_PRFTBE;// | FLASH_ACR_LATENCY; /* HCLK = SYSCLK */ RCC->CFGR |= (u32)RCC_CFGR_HPRE_DIV1; /* PCLK = HCLK */ RCC->CFGR |= (u32)RCC_CFGR_PPRE_DIV1; /* PLL configuration = HSE * 2 = 16 MHz */ RCC->CFGR &= (u32)((u32)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMUL)); RCC->CFGR |= (u32)(RCC_CFGR_PLLSRC_HSE_PREDIV | RCC_CFGR_PPRE_DIV1 | RCC_CFGR_PLLMUL2); /* Enable PLL */ RCC->CR |= RCC_CR_PLLON; /* Wait till PLL is ready */ while((RCC->CR & RCC_CR_PLLRDY) == 0) { } /* Select PLL as system clock source */ RCC->CFGR &= (u32)((u32)~(RCC_CFGR_SW)); RCC->CFGR |= (u32)RCC_CFGR_SW_PLL; /* Wait till PLL is used as system clock source */ while ((RCC->CFGR & (u32)RCC_CFGR_SWS) != (u32)RCC_CFGR_SWS_PLL) { } }
这段代码中,`void SystemInit(void)`是一个函数的声明,函数名为`SystemInit`。这个函数没有参数,返回值为`void`。
在函数体中,第一行声明了一个变量`timeout`,这个变量是一个无符号整型(`u32`)。然后是一个结构体指针的成员赋值,`RCC->CR`被赋值为`0x00000001`。接下来,又有一个结构体指针的成员赋值,`RCC->CFGR`被赋值为一个未知的值。
RCC->CSR |= RCC_CSR_RMVF
根据提供的引用内容,RCC->CSR |= RCC_CSR_RMVF 是对寄存器RCC_CSR进行位或操作,将RCC_CSR_RMVF的值设置为1。这个操作的目的是清除复位标志位。复位标志位用于识别复位源。在这个操作之后,复位标志位将被重置为0,表示复位已经完成。
以下是一个示例代码演示如何使用RCC->CSR |= RCC_CSR_RMVF 进行复位标志位的清除操作:
```c
RCC->CSR |= RCC_CSR_RMVF; // 清除复位标志位
```
阅读全文