2017-07-30 01:57 AM
hi
i have connected &sharposcillator to &sharpOSC_IN (PD0) i used this function for init &sharpRCC at &sharpSTM32F103c8t6
but is not work with &sharppll and &sharpexternal oscillator please help to me ...
void RCC_Configuration(void){
ErrorStatus HSEStartUpStatus; RCC_DeInit(); /// RCC system reset(for debug purpose) RCC_HSEConfig(RCC_HSE_Bypass); /// Enable HSE HSEStartUpStatus = RCC_WaitForHSEStartUp(); /// Wait till HSE is ready if(HSEStartUpStatus == SUCCESS) { RCC_HCLKConfig(RCC_SYSCLK_Div1); /// HCLK = SYSCLK RCC_PCLK2Config(RCC_HCLK_Div1); /// PCLK2 = HCLK RCC_PCLK1Config(RCC_HCLK_Div2); /// PCLK1 = HCLK/2 RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /// PLLCLK = 8MHz * 9 = 72 MHz RCC_PLLCmd(ENABLE); /* Enable PLL */ while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); /// Wait till PLL is ready RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /// Select PLL as system clock source while(RCC_GetSYSCLKSource() != 0x08); /// Wait till PLL is used as system clock source }}thanks
mahdi
oscillator #uphill-skiing2017-07-30 06:53 AM
If you have an XO that's on all the time, lose
HSEStartUpStatus = RCC_WaitForHSEStartUp(); /// Wait till HSE is ready
if(HSEStartUpStatus == SUCCESS)Make sure you set the flash wait states before switching to the 72 MHz clock.
2017-08-01 05:29 AM
sorry
can give me example of this ?
2017-08-01 01:12 PM
Doesn't the SPL have a whole bunch of examples? Here's a quick cleanup of yours using the advice I provided..
void RCC_Configuration(void)
{
RCC_DeInit(); /// RCC system reset(for debug purpose)
RCC_HSEConfig(RCC_HSE_Bypass); /// Enable HSE, already on and hot
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable); // Enable Prefetch Buffer
FLASH_SetLatency(FLASH_Latency_2); // Flash 2 wait state
RCC_HCLKConfig(RCC_SYSCLK_Div1); /// HCLK = SYSCLK
RCC_PCLK2Config(RCC_HCLK_Div1); /// PCLK2 = HCLK
RCC_PCLK1Config(RCC_HCLK_Div2); /// PCLK1 = HCLK/2
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); /// PLLCLK = 8MHz * 9 = 72 MHz
RCC_PLLCmd(ENABLE); // Enable PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); /// Wait till PLL is ready
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); /// Select PLL as system clock source
while(RCC_GetSYSCLKSource() != 0x08); /// Wait till PLL is used as system clock source
}
�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?�?
https://community.st.com/tags#/?tags=uphill%20skiing
2017-08-02 02:35 PM
omg
thanks
Turvey.Clive.002
2017-08-04 05:31 AM
Hello
I used the following function, but the problem persists and the controller is not loaded and the program does not run.Should I look for something else for this bug?In my samples, I did not see a comprehensive example of this!Thankful2017-08-04 10:13 AM
The Standard Peripheral Library v3.5.0 has a host of examples, the code to set clocks is typically in system_stm32f1xx.c
Assuming you'd using something half-assed like CooCox?
Examples use Keil or IAR, and utilize CMSIS properly, whereby SystemInit() is called prior to main() to set up clocks and memory. The code in system_stm32f1xx.c should do whatever board specific work your board requires. The compiler should pass in a define identifying the class of STM32F1 device you are using.
Discuss specific of your board with its vendor, and review any schematics or other materials provided by them.
2017-08-22 06:42 AM
My bug is hardware is not for programme