STM32F105RBT6使用外部晶振8M时配置外设时钟为36M

STM32F105属于互联型芯片

 

在系统设置中默认晶振为25MHZ,如果改用8M晶振,则需要修改时钟配置

1.Ctrl+F 搜索HSE_VALUE,查看当前外部时钟晶振

找到这里,将25000000修改为8000000,如下图

2.Ctrl+F搜索SetSysClockTo72(),因为我们的目的是通过外部8M晶振来将系统时钟配置成72M,所以还要修改SetSysClockTo72()里面的一些配置,首先看未修改之前

修改之后

修改完毕,为了确认修改正确,通过仿真来查看时钟频率,如图,在主函数中加入以下两行代码

点击仿真图标

全速运行

将  get_rcc_clock添加到watch1中

如图,可以看到各个时钟频率

以上为16进制显示,百度搜索进制转换,将十六进制转换为十进制

 

验证完后,修改正确

 

 

 

 

 

 

 

 

 

 

你可以使用STM32Cube HAL库来开发基于STM32F105RBT6的电子密码锁。首先,你需要在STM32CubeMX中配置你的工程。在配置,选择STM32F105R系列微控制器,并启用相应的外设,如GPIO、USART、TIM等。 然后,生成代码并导入到你的集成开发环境(IDE)中,如Keil、IAR或STM32CubeIDE。在IDE中,你可以编写C代码来实现密码锁的功能。 以下是一个简单的示例代码,演示如何使用HAL库来控制GPIO和USART: ```c #include "stm32f1xx_hal.h" // 定义GPIO引脚 #define LED_PIN GPIO_PIN_13 #define LED_PORT GPIOC // 定义USART外设 UART_HandleTypeDef huart1; void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART1_UART_Init(void); int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART1_UART_Init(); while (1) { // 在这里实现密码锁的功能 // 例如,控制LED闪烁 HAL_GPIO_TogglePin(LED_PORT, LED_PIN); HAL_Delay(1000); } } void SystemClock_Config(void) { // 配置系统时钟 // ... } static void MX_GPIO_Init(void) { // 配置GPIO引脚 // ... // 配置LED引脚 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = LED_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(LED_PORT, &GPIO_InitStruct); } static void MX_USART1_UART_Init(void) { // 配置USART外设 // ... // 初始化USART HAL_UART_Init(&huart1); } ``` 请注意,以上代码只是一个简单示例,你需要根据你的具体需求进行修和扩展。你可以使用HAL库提供的函数来控制GPIO、USART等外设,并实现密码锁的逻辑。 希望这可以帮助你开始开发基于STM32F105RBT6的电子密码锁!如有更多问题,请随提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值