STM32F103C8T6配置48M主频
时间: 2023-12-18 20:25:42 浏览: 151
要将STM32F103C8T6配置为48MHz的主频,可以按照以下步骤进行操作:
1. 打开系统时钟,使得可以对时钟进行配置。可以通过将RCC_CR寄存器的HSEON位设置为1来启用外部晶体振荡器。
2. 等待外部晶体振荡器稳定。可以通过轮询RCC_CR寄存器的HSERDY位来检查外部振荡器是否已经稳定。
3. 配置时钟源选择器。将RCC_CFGR寄存器的SW位设置为01,以选择外部晶体振荡器作为系统时钟。
4. 配置分频器。根据外部晶体振荡器的频率和所需的系统时钟频率,设置RCC_CFGR寄存器的HPRE位和PREDIV1位,以得到所需的时钟频率。
5. 配置PLL倍频因子。设置RCC_CFGR寄存器的PLLMUL位和PLLSRC位,以选择PLL输入时钟源和倍频因子。
6. 等待PLL稳定。可以通过轮询RCC_CR寄存器的PLLRDY位来检查PLL是否已经稳定。
7. 选择PLL作为系统时钟源。将RCC_CFGR寄存器的SW位设置为10,以选择PLL作为系统时钟。
8. 等待PLL作为系统时钟稳定。可以通过轮询RCC_CFGR寄存器的SWS位来检查PLL是否已经成为系统时钟。
9. 配置Flash等待周期。根据所选的系统时钟频率,设置FLASH_ACR寄存器的LATENCY位,以保证Flash访问的稳定性。
10. 检查配置结果。可以通过读取RCC_CFGR寄存器的SWS位和FLASH_ACR寄存器的LATENCY位来确认配置结果。
相关问题
stm32f103c8t6在72M主频下DELAY_MS函数怎么写
STM32F103C8T6是ST公司生产的一款基于ARM Cortex-M3内核的中高端微控制器。它具备多种频率的时钟源,包括内部高速时钟(HSI)和外部高速时钟(HSE),并且可以通过锁相环(PLL)来实现更高的主频。在72MHz的主频下,要实现毫秒级的延时,通常会采用硬件定时器或者使用DWT(Data Watchpoint and Trace)单元来实现精确的延时函数。
但是,如果你没有使用任何操作系统,或者想要实现一个简单的软件延时函数,可以使用STM32F103C8T6的SysTick定时器(系统滴答定时器)。SysTick是一个从主时钟(HCLK)分频后的24位递减计数器,可以在不使用DWT的情况下提供一个简单的延时实现。
以下是一个基于SysTick定时器的`DELAY_MS`函数的简单示例:
```c
#include "stm32f10x.h"
void SysTick_Handler(void)
{
// 此函数在SysTick定时器溢出时由硬件自动调用
}
void DELAY_MS(uint32_t ms)
{
// 假设SysTick定时器已经配置好并且每隔1ms溢出一次
ms += (SysTick->LOAD - 1); // 加载初始值,因为SysTick是递减的,所以是LOAD值减1
SysTick->LOAD = ms; // 设置延时时间
SysTick->VAL = 0x00; // 清空当前值
SysTick->CTRL |= 0x01; // 使能SysTick定时器,并选择使用HCLK作为时钟源
while((SysTick->CTRL & 0x10000) == 0); // 等待SysTick定时器的CURRENT位变为1,表示计数完成
SysTick->CTRL &= ~0x01; // 禁用SysTick定时器
}
int main(void)
{
// 初始化代码...
while(1)
{
DELAY_MS(1000); // 延时1000ms
// 其他操作...
}
}
```
在上面的代码中,我们假设SysTick定时器已经被正确配置,每隔1ms产生一次溢出中断。在`DELAY_MS`函数中,我们首先设置SysTick定时器的计数值,然后使能定时器,并等待定时器溢出(通过等待CURRENT位变为1)。溢出后,定时器自动停止。
需要注意的是,这种方法并不推荐用于精确的时序控制,因为它依赖于SysTick定时器的中断处理,而中断响应时间会有一定的不确定性。此外,如果中断服务例程(ISR)被其他任务阻塞,实际的延时可能会更长。
stm32f103c8t6和stm32f103c8t6tr区别
STM32F103C8T6和STM32F103C8T6TR都是基于ARM Cortex-M3内核的微控制器,它们的主要区别在于封装形式不同。其中,STM32F103C8T6采用DIP40封装形式,而STM32F103C8T6TR采用LQFP48封装形式。
具体来说,DIP40封装形式的芯片可以直插在通用实验板上进行开发,而LQFP48封装形式的芯片则需要通过焊接技术进行安装。因此,LQFP48封装形式的芯片适用于SMT贴片生产流程。
除了封装形式不同以外,这两种型号的主要参数和性能指标都是相同的。例如它们都具有64KB闪存、20KB SRAM、72MHz主频、GPIO、UART、SPI、I2C等多种常用外设接口,支持多种低功耗模式等。
阅读全文