void RCC_Configuration(void)
{
RCC_DeInit(); //将外设 RCC寄存器重设为缺省值(即默认值)
RCC_HSEConfig(RCC_HSE_ON);//打开外部晶振
if(RCC_WaitForHSEStartUp() == SUCCESS) //判断起振是否成功
{
RCC_HCLKConfig(RCC_SYSCLK_Div1); //设置AHB时钟(HCLK)(这时设置为=系统时钟)
RCC_PCLK2Config(RCC_HCLK_Div1); //设置高速AHB时钟(HCLK2)(这时设置为=HCLK)
RCC_PCLK1Config(RCC_HCLK_Div2); //设置低速AHV时钟(HCLK1)(这时设置为=HCLK/2)
FLASH_SetLatency(FLASH_Latency_2);//设置 FLASH存储器延时时钟周期数。(设置为延时2个时钟周期)
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//使能预取指缓存
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);//PLL的时钟来源及倍频的倍数
RCC_PLLCmd(ENABLE);//使能PLL
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) //检测PLL是否就绪
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); //设置PLL为系统时钟
while(RCC_GetSYSCLKSource() != 0x08) //检测系统的时钟源是否是PLL
{
}
}
/*这里用来打开要用到的外设的时钟*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);//使能USART GPIOA时钟
关键字:stm32 外部晶振 倍频后 系统时钟 常用设置
引用地址:
stm32外部晶振经倍频后提供系统时钟常用设置
推荐阅读最新更新时间:2024-03-16 15:15
关于STM32 Systick 延时函数 变量全局引用的问题
有这样一段代关于systick.c,如下: #include SysTick.h volatile unsigned int TimingDelay ; // 精确延时在SysTick中断里用的计数变量 // 在全局变量里面一定要加上volatile关键字(易变的),否则在全局引用中容易造成编译器的传递错误 void SysTick_1ms_Configuration(void) { /* Setup SysTick Timer for 1 msec interrupts */ if (SysTick_Config(SystemFrequency / 1000)) { /* Capture error */ while (
[单片机]
[零基础学习STM32]第四讲:UART通讯实验—控制LED
一、概述 1、UART简介 UART:通用同步/异步串行接收/发送器,由时钟发生器、数据发送器和接收器三大部分组成。UART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。STM32F407IGT6具有6个UART收发器,可使用相应的代码使能后使用。 2、UART特点 全双工操作(相互独立的接收数据和发送数据)。 同步操作时,可主机时钟同步,也可从机时钟同步。 支持8和9位数据位,1或2位停止位的串行数据桢结构。 由硬件支持的奇偶校验位发生和检验。 数据溢出检测。 帧错误检测。 包括错误起始位的检测噪声滤波器和数字低通滤波器。 三个完全独立的中断,TX发送完成、TX发送数据寄存器空、R
[单片机]
STM32单片机的ISP一键下载
ISP就是In System Programming在线系统编程,最常用的就是通过单片机的串口将程序HEX文件下载到内部FLASH中,单片机重启时就执行内部FLASH中的程序。根据STM32的数据手册,STM32的启动方式和BOOT引脚有关 MCUISP软件是STM32单片机ISP下载程序的软件,就像我们用STC单片机ISP下载程序时通过STCISP软件一样,下载程序时的步骤都是类似的,无非就是选择好串口和波特率,加载HEX文件,选择附加选项后再烧录程序即可。 ISP普通烧录 根据上表所示,我们用STM32的串口下载程序的步骤为: 1.电脑通过USB线连接STM32的串口(因为在STM32开发板上已经设计了USB转串口电路,常
[单片机]
STM32 DMA串口发送模式配置及使用简单分享
赠人玫瑰,手有余香;很感谢网上其他楼主的分享;我这个贴子是关于STM32 DMA USART 发送模式的调试分享,我为什么要建这个帖子呢,因为我不想看到还有其他人跟我一样,为了调通DMA串口,而花上大半天的时间,这很不利于大家高效率的开发,网上的经验都是从头教到尾的,内容极多,对于有点小经验的人,或者是想很快达到目的的人,这个很不适合他们;我的这个很简单(本帖不适合不熟悉配置STM32串口的玩家),他只是说串口的DMA怎么配置,还有我用的是DMA1_通道4,因为我的是串口1的TX长话短说:直接po代码: DMA_InitTypeDef DMA_InitStruct; //DMA类型声明 RCC_AHBPeriphC
[单片机]
意法半导体STM32Cube.AI 开发工具增加深度量化神经网络支持
意法半导体(ST)发布了STM32Cube.AI version 7.2.0,这是微控制器厂商推出的首款支持超高效深度量化神经网络的人工智能(AI)开发工具。 STM32Cube.AI 将预先训练好的神经网络转换成STM32微控制器(MCU)可以运行的C语言代码 ,是充分利用嵌入式产品有限的内存容量和算力开发尖端人工智能解决方案的重要工具,将人工智能从云端下移到边缘设备,能够为应用带来巨大的优势,其中包括原生隐私保护、确定性实时响应、更高的可靠性和更低的功耗。边缘人工智能还有助于优化云计算使用率。 现在,通过支持 qKeras 或 Larq 等深度量化输入格式,开发者可以进一步降低神经网络代码量、内存占用和响应延迟
[物联网]
stm32单片机GPIO端口的特点及应用解析
一、GPIO的综合描述 stm32每一个GPIO端口拥有2个32bits的configuration寄存器(GPIOx_CRL,GPIOx_CRH),2个32bits的数据寄存器(GPIOx_IDR,GPIOx_ODR),1个32bits的set/reset寄存器(GPIOx_BSRR),1个16bits的reset寄存器(GPIOx_BRR)和1个32bits的Lock寄存器(GPIOx_LCKR)。 (一)每一个IO引脚都可以使用软件配置为以下几种模式: 1. 浮空输入 2. 带上拉输入 3. 带下拉输入 4. 模拟输入 5. 开漏输出——(此模式可实现hotpower说的真双向IO) 6. 推挽输出 7. 复用功能的推挽
[单片机]
正点原子stm32模拟IIC
#ifndef __MYIIC_H #define __MYIIC_H #include sys.h ////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途 //Mini STM32开发板 //IIC 驱动函数 //正点原子@ALIENTEK //技术论坛:www.openedv.com //修改日期:2010/6/10 //版本:V1.0 //版权所有,盗版必究。 //Copyright(C) 正点原子 2009-2019 //All rig
[单片机]
STM32单片机硬件关键基础精华及注意事项
STM32简单介绍 一、背景 如果你正为项目的处理器而进行艰难的选择:一方面抱怨16位单片机有限的指令和性能,另一方面又抱怨32位处理器的高成本和高功耗,那么,基于 ARM Cortex-M3内核的STM32系列处理器也许能帮你解决这个问题。使你不必在性能、成本、功耗等因素之间做出取舍和折衷。 即使你还没有看完STM32的产品手册,但对于这样一款融合ARM和ST技术的“新生儿”相信你和我一样不会担心这款针对16位MCU应用领域 的32位处理器的性能,但是从工程的角度来讲,除了芯片本身的性能和成本之外,你或许还会考虑到开发工具的成本和广泛度;存储器的种类、规模、性能和容 量;以及各种软件获得的难易,我相信你看
[单片机]