zoukankan      html  css  js  c++  java
  • 关于STM32F103配置时钟的问题。

      最近在进行飞控地面站项目,因为通讯芯片NRF24L01需要16M 60PPM的时钟输入,故想到了利用STM32 PA8口直接输出MCO进行驱动。

    画了板子,进行调试的时候发现,NRF24L01 SPI通讯时候很大程度程序会在最后一位读取、写入出错(60%)。后来发现了引脚配置选择的是10MHz的速度,改到了50MHz发现问题解决了。

    在进行串口调试时候输出了乱码,才想起来晶振变了,便修改了stm32f10x.h文件中晶振定义修改为#define HSE_VALUE ((uint32_t)16000000) /*!<Value of the External oscillator in HZ*/

    测试发现串口正常了,正常编写时候发现有时候板子运行不了程序,使用MDK的simulink设置16MHz晶振的时候查看Peripherals -> power、reset and clock control 发现时钟不对,到了144MHz去了。

    修改system_stm32f10x.c  中函数static void SetSysClockTo72(void)中SYSCLK时钟配置部分。将其修改为

        RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE |RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLMULL9); //大概在文件的1056行

    完成任务。

  • 相关阅读:
    HDU 5744
    HDU 5815
    POJ 1269
    HDU 5742
    HDU 4609
    fzu 1150 Farmer Bill's Problem
    fzu 1002 HangOver
    fzu 1001 Duplicate Pair
    fzu 1150 Farmer Bill's Problem
    fzu 1182 Argus 优先队列
  • 原文地址:https://www.cnblogs.com/Mckk/p/5526206.html
Copyright © 2011-2022 走看看