使用CubeMX工具,让开发者不用理会底层的实现,是整个配置变简单
一、准备工具STM32_CubeMX
ST官网可下载 http://www.st.com/content/st_com/en/search.html#q=cubemx-t=tools-page=1
二、打开STM32_CubeMX开始配置,使用内部RC,最大倍频至64MHZ,芯片大于64MHZ,应该选择HSE
已STM32F103为例子
HSI配置
HSE配置
三、以下是STM32F103 HES 72MHZ配置例子:
工具生成基本直接可以使用,需要注意是,外部晶振源,有8khz(默认),12khz,可以在System_stm32f1xx.h修改
/** System Clock Configuration*/
void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct;
RCC_ClkInitTypeDef RCC_ClkInitStruct;
/**Initializes the CPU, AHB and APB busses clocks */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
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_DIV2;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != 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);
}
/** NVIC Configuration*/
static void MX_NVIC_Init(void)
{
/* RCC_IRQn interrupt configuration */
HAL_NVIC_SetPriority(RCC_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(RCC_IRQn);
}
关键字:STM32 HAL 系统时钟配置
引用地址:
STM32 HAL 库学习笔记之-------(系统时钟配置)
推荐阅读最新更新时间:2024-03-16 16:11
stm32 的3种下载程序方式
个人记录: 了解这些,自己多多总结,也算是对开发板硬件接口的了解。 没总结完, 【1】ISP下载 这里类似51. boot1拨到0, 就行了 下载需要来回拨动拨码开关 【2】J-LINK 可下载 可仿真 (分为SW和JTAG模式) JTAG 或 SW 方式,在KEI的编程选项里面设定,选择好仿真器后,在相关的SETTINGS设置项里面会有 JTAG和SWD方式的选择。 只需要修改KEI环境配置,和硬件设置,这个SWD只需要5个,一个电源,一个地 和仅需要三根调试线SWDO(可选的跟踪),SWDIO(data I/O),SWDCLK(时钟针) 如果用jtag模式下载的话,需要接:jlink的
[单片机]
STM32开发 -- 外部中断详解
在讲三轴加速度计的时候,提到外部中断。接下来就看看中断为什么这么配置。 一、外部中断概述 STM32的每个IO都可以作为外部中断输入。 那我们之前讲过的,参看:STM32开发 – GPIO详解 STM32F105RC 一共有4组IO口 一共16X3+3=51个IO GPIOA0~A15 GPIOB0~B15 GPIOC0~C15 GPIOD0~D2 那么它跟中断的关系是什么呢? STM32的中断控制器支持19个外部中断/事件请求: 从图上来看,GPIO 的管脚 GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G)分别对应中断线 0 ~ 15。 另外四个EXTI线的连接方式如下: ● EXTI线16
[单片机]
STM32 UART的使用过程
1、使用UART前必须启动相应的外设时钟,其主要用到固件库的RCC_APBnPeriphClockCmd函数。 使能UART1:使用RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE) 使能UART2:使用RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2 , ENABLE) 2、使用中断进行UART操作的需要配置NVIC,设置中断优先级。如: /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGr
[单片机]
STM32标准库函数命名规则
1.xxx_Init的函数,其功能是根据xxx_InitTypeDef中指定的参数,初始化外设xxx,例如TIM_Init 2.xxx_DeInit的函数,其功能为复位外设xxx的所有寄存器至默认值,例如TIM_DeInit 3.xxx_StructInit的函数,其功能为通过设置xxx_InitTypeDef 结构中的各种参数为默认值,例如:USART_StructInit 4.xxx_Cmd的函数,其功能为使能或者失能外设xxx,例如: SPI_Cmd. 5.xxx_ITConfig的函数,其功能为使能或者失能来自外设xxx某中断源,例如: RCC_ITConfig 6.xxx_DMAConfig的函数,其功能为使能或者失能外
[单片机]
STM32调试,无法进入main函数 LDR r0,[pc,#0]
1.打开j-flash软件 2.connect jlink 3.解除芯片加密
[单片机]
基于STM32的新型角度测量系统设计
在现代控制系统中,角度测量装置是非常关键的需要高精度的部件,其测量精度直接影响着整个系统的性能和精度。例如施工 升降机上有角度测控机构来控制起降;火箭炮瞄准系统中都有大量的角度传感器,实时检测炮塔偏转角度,以便对火箭炮瞄准进行调整。目前已有的利用的加速度传 感器实现高精度角度测量的研究,主要侧重于单轴的角度测量。本文将重点讨论利用双轴加速传感器ADXL202实现高精度角度测量的软硬件方法。 1 角度测量仪系统硬件方案设计 本角度测量仪采用STM32F107作为数据处理的核心芯片。这是一款低功耗、高速度的32位处理器,拥有Cortex-M3内核。角度测量模块使用的是高精度、低功耗的双轴加速度传感器ADXL202,能将加速度信号转换成
[单片机]
STM32的时钟简介和配置方法
STM32中使用任何一个外设都必须打开相应的时钟。在STM32中有5个时钟源可供用户选择: 1.HSI高速内部时钟,RC震荡器,频率为8MHz。 2.HSE高速外部时钟,右英/陶瓷谐振器,或着外部时钟源,4MHz-16MHz. 3.LSI内部低速时钟,RC震荡器频率为40Hz。 4.LSE外部低速时钟,接频率为32.768KHz的石英晶体。 5.PLL锁相环频输出,时钟源可选为HIS/2、HSE或HSE/2。倍频可选2-16倍,但其输出频率最大不能超过72MHz。 系统时钟SYSCLK,它是供STM32中绝大部分器件工作的时钟源,系统时钟可选择为PLL输出、HSI或者HSE。系统时钟的做大频率为72MHz,它通过AHB分频器分频后
[单片机]
STM32F0单片机快速入门六 用库操作串口(UART)原来如此简单
1.从 GPIO 到 UART 前面几节我们讲了MCU如何启动,如何用翻转IO引脚,以及用按键去触发中断。接下来我们介绍的也是最常用的一个模块,串口(UART)。 串口可以说是最古老,而且生命力最强的一种通信接口了。RS485总线更是久经考验。虽然串口早已经从大多数PC的标配中去掉了,但是嵌入式系统跟上位PC机通信用的最多的应该还是通过串口转USB吧。 我们用 Keil 打开下面这个工程: STM32Cube_FW_F0_V1.11.0ProjectsSTM32F030R8-NucleoExamplesUARTUART_TwoBoards_ComPollingMDK-ARMProject.uvprojx 这个代码配置串口为 96
[单片机]