0
방금 stm32l152RC를 구입하여 지연이 어떻게 작용하는지 궁금합니다. 시스템 클럭은 16Mhz입니다.지연은 stm32l152RC에서 어떻게 작동합니까?
코드 : 나는 지연이 초 1이 경우 Delay(1000);
을 실행하면 지연이 1 초는 왜
static volatile uint32_t TimingDelay;
void Delay(__IO uint32_t nCount);
int main(void) {
Config_Systick();
char *RCCp = (char*) 0x40023800;
int *PBp = (int *) 0x40020400;
// RCC Config
*((int*) (RCCp + 28)) |= 0x3f;
*((int*) (RCCp + 32)) |= 1;
*PBp = 0x5000;
while (1) {
GPIO_TOGGLE(GPIOB, LD_GREEN); //toggle green led
Delay(1000); // 1 second?
}
} // end of main
RCC_ClocksTypeDef RCC_Clocks;
void Config_Systick() {
RCC_GetClocksFreq(&RCC_Clocks);
SysTick_Config(RCC_Clocks.HCLK_Frequency/1000); // setting changed to/1000
}
void TimingDelay_Decrement(void) {
if (TimingDelay != 0x00) {
TimingDelay--;
}
}
void Delay(uint32_t nTime) {
TimingDelay = nTime;
while (TimingDelay != 0) {
};
}
가, 누군가가 설명해 주시겠습니까?
@Olaf 답변 주셔서 감사합니다. 실제로 읽었습니다. –