stm32时钟的主要获取方法有几种,分别是什么
1个回答
关注
展开全部
亲亲,很高兴为您解答!有以下几种方法获取STM32时钟:1.使用HAL库函数获取时钟。使用HAL库提供的函数获取时钟频率,如RCC_GetSysClockFreq()函数获取系统时钟频率。但是使用HAL库需要对MCU的特性有一定的了解,并且库的使用可能会占用一定的存储空间。2.使用标准外部谐振器的频率计算。STM32芯片提供了各种时钟源和分频器,可以根据外部XTAL的频率计算MCU的时钟。这种方法需要获取到XTAL的精确频率,并且计算过程需要考虑分频器的影响。3.使用内置的HSI时钟。HSI时钟是一个内置的高速时钟,可以直接使用它与分频器计算出所需的时钟频率。这种方法适用于一些简单的应用场景哦~
咨询记录 · 回答于2023-06-08
stm32时钟的主要获取方法有几种,分别是什么
亲亲,很高兴为您解答!有以下几种方法获取STM32时钟:1.使用HAL库函数获取时钟。使用HAL库提供的函数获取时钟频率,如RCC_GetSysClockFreq()函数获取系统时钟频率。但是使用HAL库需要对MCU的特性有一定的了解,并且库的使用可能会占用一定的存储空间。2.使用标准外部谐振器的频率计算。STM32芯片提供了各种时钟源和分频器,可以根据外部XTAL的频率计算MCU的时钟。这种方法需要获取到XTAL的精确频率,并且计算过程需要考虑分频器的影响。3.使用内置的HSI时钟。HSI时钟是一个内置的高速时钟,可以直接使用它与分频器计算出所需的时钟频率。这种方法适用于一些简单的应用场景哦~
.使用STM32芯片,其PB8引脚连接LED阴极,写出相应的程序控制LED的闪烁。
亲,下面是使用STM32芯片,通过PB8引脚连接LED阴极,控制LED闪烁的程序代码#include "stm32f10x.h"int main(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB时钟GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin = GPIO_Pin_8; //PB8引脚GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出模式GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //输出速度50MHzGPIO_Init(GPIOB, &GPIO_InitStruct); //初始化PB8引脚while(1){GPIO_WriteBit(GPIOB, GPIO_Pin_8, Bit_SET); //LED亮delay_ms(100); //延时GPIO_WriteBit(GPIOB, GPIO_Pin_8, Bit_RESET); //LED灭delay_ms(100); //延时}}//延时函数,精度不高void delay_ms(uint16_t ms){volatile uint32_t i, j;for(i = 0; i < ms; i++){for(j = 0; j < 9000; j++);}}
本回答由深圳市兴威帆电子技术有限公司提供