STM32F405晶体不起振
STM32F405的一个板子,现在外接低频晶体32.768MHz用作实时时钟;还外接了25MHz晶体用作CPU主时钟晶体;现在板子焊好可以连接J-link,能够识别STM32型号,下载程序也正常,但是外接的两个晶体都不能起振,示波器测试没有波形,一直为低,请问是什么原因导致的,与程序是否有关?(现在已经换了几个晶体了,也用过12M和16M的,同样不能起振;负载电容也调整过,都不能起振;引脚测试连线没有问题,电源也正常)本帖最后由 wenyangzeng 于 2018-10-19 16:02 编辑
HSE如果没有使能当然不起振了:
不过这个F405的LSE在CubeMX中好像使能不了,选项是灰色的。
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
/**Configure the main internal regulator output voltage
*/
__HAL_RCC_PWR_CLK_ENABLE();
__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
/**Initializes the CPU, AHB and APB busses clocks
*/
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 25;
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 4;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
/**Initializes the CPU, AHB and APB busses clocks
*/
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
/**Configure the Systick interrupt time
*/
HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
/**Configure the Systick
*/
HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
/* SysTick_IRQn interrupt configuration */
HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
}
不起振的现象是用示波器测出来的吗?
如果是的话,先查硬件问题。 会不会是system_stm32f4xx.c里面的时钟参数忘记设置了 PCB不良,或是焊接不良,或是晶体不良 硬件连接没问题,晶振,负载电容,串阻能换的都换了,但是还是无法起振。 wenyangzeng 发表于 2018-10-19 16:00
HSE如果没有使能当然不起振了:
我是搞硬件的,对于软件配置了解不多,就是需要软件相关配置,晶振才能起振吗? 月月鸟刘 发表于 2018-10-19 18:07
我是搞硬件的,对于软件配置了解不多,就是需要软件相关配置,晶振才能起振吗? ...
是的,楼主可以将2楼的代码运行一下试试 STM32 默认上电是不启动晶振的,需要代码里面去专门开启。 wenyangzeng 发表于 2018-10-19 16:00
HSE如果没有使能当然不起振了:
OK,最后发现确实是软件的问题,谢谢。
页:
[1]
2