stm32软件调试为什么要修改晶振为8
时间: 2024-03-31 17:32:36 浏览: 15
在进行STM32单片机软件调试时,修改晶振为8Mhz主要有两个原因:
1. 节省调试时间:在调试过程中,如果使用高频晶振,单片机工作速度会非常快,可能会导致一些问题难以观察和调试。而将晶振修改为8Mhz后,单片机的工作速度会降低,这样就更容易观察和调试问题。
2. 节省成本:高频晶振价格较高,而8Mhz的晶振价格较低,可以有效降低成本。在调试完成后,再将晶振修改回高频晶振,以保证产品的性能。
需要注意的是,在将晶振修改为8Mhz后,需要相应地修改时钟频率和定时器等参数,以确保程序正常运行。
相关问题
STM32外部8兆晶振改为内部晶振
如果您想将STM32的外部8MHz晶振改为内部晶振,可以按照以下步骤进行操作:
1. 在STM32的代码中,找到配置系统时钟的代码段,一般为RCC配置相关的代码。可以根据您所使用的芯片型号和开发板的具体情况进行修改。
```c
/* RCC system reset(for debug purpose) */
// RCC_DeInit();
/* Enable HSE */
// RCC_HSEConfig(RCC_HSE_ON);
/* Wait till HSE is ready */
// while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);
/* Enable Prefetch Buffer */
// FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
/* Flash 2 wait state */
// FLASH_SetLatency(FLASH_Latency_2);
/* HCLK = SYSCLK */
// RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* PCLK2 = HCLK */
// RCC_PCLK2Config(RCC_HCLK_Div1);
/* PCLK1 = HCLK/2 */
// RCC_PCLK1Config(RCC_HCLK_Div2);
/* PLLCLK = 8MHz * 9 = 72 MHz */
// RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
/* Enable PLL */
// RCC_PLLCmd(ENABLE);
/* Wait till PLL is ready */
// while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
/* Select PLL as system clock source */
// RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/* Wait till PLL is used as system clock source */
// while(RCC_GetSYSCLKSource() != 0x08);
```
2. 将上述代码中的HSE(外部晶振)相关的代码注释掉,保留PLL相关的代码。为了使用内部晶振,您需要将PLL的输入时钟源选择为HSI(内部晶振)。
```c
/* RCC system reset(for debug purpose) */
// RCC_DeInit();
/* Enable Prefetch Buffer */
FLASH_PrefetchBufferCmd(ENABLE);
/* Flash 2 wait state */
FLASH_SetLatency(FLASH_Latency_2);
/* HCLK = SYSCLK */
RCC_HCLKConfig(RCC_SYSCLK_Div1);
/* PCLK2 = HCLK */
RCC_PCLK2Config(RCC_HCLK_Div1);
/* PCLK1 = HCLK/2 */
RCC_PCLK1Config(RCC_HCLK_Div2);
/* PLLCLK = 8MHz * 9 = 72 MHz */
RCC_PLLConfig(RCC_PLLSource_HSI_Div2, RCC_PLLMul_9);
/* Enable PLL */
RCC_PLLCmd(ENABLE);
/* Wait till PLL is ready */
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
/* Select PLL as system clock source */
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
/* Wait till PLL is used as system clock source */
while(RCC_GetSYSCLKSource() != 0x08);
```
3. 在代码中使用内部时钟源时,需要注意以下事项:
- 内部时钟源的频率为8MHz,比外部晶振的频率低,需要对代码进行相应的修改,以适应内部时钟源;
- 内部时钟源的精度比外部晶振低,可能会产生一些时钟误差,需要根据实际情况进行调试和优化;
- 如果您需要使用外部晶振,需要修改代码并重新烧录程序。
STM32F103C8T6最小系统
STM32F103C8T6是一款ARM Cortex-M3内核的微控制器,它可以用于各种嵌入式应用。最小系统是指将微控制器芯片、时钟电路、复位电路和调试接口等核心模块集成在一起,以便于进行开发和调试。以下是一个STM32F103C8T6最小系统的设计方案:
硬件部分:
1. 主控芯片:STM32F103C8T6微控制器芯片
2. 时钟电路:采用8MHz的晶振和两个22pF的电容,构成基本的振荡电路
3. 复位电路:采用一个复位电路芯片,实现复位功能
4. USB调试接口:采用CH340G芯片,实现USB转串口功能
5. LED指示灯:可用于调试和状态指示
6. 扩展接口:可连接其他外设模块
软件部分:
1. 开发工具:Keil MDK或者IAR Embedded Workbench等
2. 编程语言:C语言
3. 开发库:STM32F1xx_HAL_Driver等
以上是STM32F103C8T6最小系统的设计方案,可以根据实际需求进行修改和优化。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)