2019独角兽企业重金招聘Python工程师标准>>>

一般stm32 外部晶振是8M的,但是如果你要改外部晶振的话,需要把配置文件也改下

如图位置,把8000000改为 16000000;

图3  系统时钟配置

修改SetSysClockTo72(void)文件如下:

static void SetSysClockTo72(void)
{
  __IO uint32_t StartUpCounter = 0, HSEStatus =0;

RCC->CR |= ((uint32_t)RCC_CR_HSEON);

do
  {
    HSEStatus =RCC->CR & RCC_CR_HSERDY;
   StartUpCounter++; 
  } while((HSEStatus == 0) &&(StartUpCounter != HSE_STARTUP_TIMEOUT));
  if ((RCC->CR & RCC_CR_HSERDY) !=RESET)
  {
    HSEStatus =(uint32_t)0x01;
  }
  else
  {
    HSEStatus =(uint32_t)0x00;
  } 
  if (HSEStatus == (uint32_t)0x01)
  {
   
   FLASH->ACR |= FLASH_ACR_PRFTBE;
   
   FLASH->ACR &=(uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
   FLASH->ACR |=(uint32_t)FLASH_ACR_LATENCY_2;

RCC->CFGR|= (uint32_t)RCC_CFGR_HPRE_DIV1;
     
   
    RCC->CFGR|= (uint32_t)RCC_CFGR_PPRE2_DIV1;
   
   
    RCC->CFGR|= (uint32_t)RCC_CFGR_PPRE1_DIV2;
#ifdef STM32F10X_CL
   
   
   
       
   RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 |RCC_CFGR2_PLL2MUL |
                             RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC);
   RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 |RCC_CFGR2_PLL2MUL8 |
                            RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5);

RCC->CR|= RCC_CR_PLL2ON;
   
   while((RCC->CR & RCC_CR_PLL2RDY) == 0)
    {
    }
   
       RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC| RCC_CFGR_PLLMULL);
    RCC->CFGR|= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1|
                           RCC_CFGR_PLLMULL9);
#else   
   
    //16MHZ2分频如下改动,添加RCC_CFGR_PLLXTPRE_HSE_Div2
    RCC->CFGR&= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE|
                                       RCC_CFGR_PLLXTPRE_HSE_Div2|RCC_CFGR_PLLMULL));
    RCC->CFGR|= (uint32_t)(RCC_CFGR_PLLXTPRE_HSE_Div2 | RCC_CFGR_PLLSRC_HSE |RCC_CFGR_PLLMULL9);
#endif
   
    RCC->CR|= RCC_CR_PLLON;
   
   while((RCC->CR & RCC_CR_PLLRDY) == 0)
    {
    }
   
   
    RCC->CFGR&= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
    RCC->CFGR|=(uint32_t)RCC_CFGR_SW_PLL;   
   
    while((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) !=(uint32_t)0x08)
    {
    }
  }
  else
  {
  }
}

如果用的keil  还要改下target里的 xtal 为16Mhz

以上只是针对于无源晶振,然而对于有源晶振,接法和无源晶振是不一样的,有源晶振由外部发送脉冲信号,通过oscin输入,oscout悬空,此时,在启动文件system_stm32f0xx.c中,在SetSysClock函数中,加上

/*Disable HSI*/

RCC->CR |= ((uint32_t)RCC_CR_HSEBYP);

/* Enable HSE */

RCC->CR |= ((uint32_t)RCC_CR_HSEON);

顺序一定不要搞错,就可以了

HSEBYP是把 HSI旁路,手册上说的被旁路,不是外部晶振失能,而是内部晶振失能,所以HSEBYP置1表示失能HSE,失能HSI

有源晶振一般比无源晶振贵,优点是输出波形完美,不受寄生电容干扰,缺点是输出频率不可调,无源晶振一般比芯片内部晶振效果好十倍,由内部脉冲触发

转载于:https://my.oschina.net/u/2252538/blog/551949

晶振对stm32 串口数据传输的影响相关推荐

  1. 换晶振导致stm32串口数据飞码的解决办法

    一般来说,stm32f107都是用标配的晶振,比如8MHz. 但是,如果用别的晶振,比如13.56M的晶振,那串口接收还正常吗? 根据试验结果,很可能会飞码.比如说用串口助手发送的是0x35,但是在串 ...

  2. 换晶振导致stm32串口数据飞码的解决办法(补充)

    今天(2014.4.21)把stm32f107的程序下载到stm32f103的板子上,发现串口收不到数据,突然想起晶振频率没有修改,#define HSE_VALUE    ((uint32_t)13 ...

  3. ipconfig不是内部或外部_晶振有什么作用,如何选择合适的晶振,为什么有时候用内部晶振?...

    一. 什么是晶振 晶振,全名叫"晶体振荡器",它在电路当中起到产生振荡频率的作用,我们都知道,单片机可以看成是在时钟驱动下的时序逻辑电路,那么这个所需要的时钟就是晶振来产生,可以说 ...

  4. 一个严谨的STM32串口DMA发送接收(1.5Mbps波特率)机制

    文章目录 1 前言 2 串口有必要使用DMA吗 3 实现方式 4 STM32串口使用DMA 5 串口DMA接收 5.1 基本流程 5.2 相关配置 5.3 接收处理 5.3 .1 接收数据大小 5.3 ...

  5. 电子器件系列十九:晶振

    石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件. 它的基本结构大致是从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形.矩形或圆形等),在它的两个对应面上涂 ...

  6. STM8s外部时钟晶振失效时钟安全系统CSS启动演示

    使用的最小系统晶振是8m的. 这里说下配置过程: 时钟自动切换,开启切换中断 在中断里面清除中断标志,使能CSS并开启CSS中断 CSS中断发生,清除CSS中断标志,将HSI二分频,即16M/2=8M ...

  7. 关于晶振的那些事……

    原文地址:http://bbs.armfly.com/read.php?tid=19764&fpage=2 关于晶振的那些事-- 晶振,在板子上看上去一个不起眼的小器件,但是在数字电路里,就像 ...

  8. 晶振,数字电路的心脏~

    之所以说晶振是数字电路的心脏,就是因为所有的数字电路都需要一个稳定的工作时钟信号,最常见的就是用晶振来解决,可以说只要有数字电路的地方就可以见到晶振. 常见种类 我们常说的晶振,包含两种. 一种需要加 ...

  9. 电路 晶振频率_都说晶振是电路的心脏,你真的了解它吗?

    之所以说晶振是数字电路的心脏,就是因为所有的数字电路都需要一个稳定的工作时钟信号,最常见的就是用晶振来解决,可以说只要有数字电路的地方就可以见到晶振. 常见种类 我们常说的晶振,包含两种. 一种需要加 ...

最新文章

  1. 企业云部署要如何选择IaaS PaaS和SaaS
  2. 转:FMS 3.5之Hello World!
  3. HBase数据存取流程
  4. 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
  5. java对docker_如何在docker中运行java程序
  6. webpack4学习之问题一
  7. Hdu2660 Accepted Necklace【简单dfs】
  8. 并发包 concurrent(一) Atomic
  9. 1、Java语言简介
  10. 数模竞赛必备参考书籍《算法竞赛入门经典(第2版)》PDF免费下载
  11. linux安装 soapui_SOAP测试工具-SoapUI For Linux下载V5.2.1免费版-西西软件下载
  12. 统计学和计算机的关系,浅议统计学与其他学科的关系
  13. pta平台c语言作业答案,C语言PTA平台习题与答案.pdf
  14. 考研数学笔记(更新中)
  15. IP地址冲突的原因及其解决方法
  16. 机器人运动规划技术介绍
  17. 2019牛客多校第九场 H Cutting Bamboos (二分主席树)
  18. c++学习 cout endl使用
  19. BP客户主数据信用数据批量修改
  20. A + B Proble

热门文章

  1. Javascript中最常用的经典技巧
  2. 工厂模式和策略模式区别
  3. 如何进行手机web远程调试——chrome beta
  4. 最新容器项目 Kata 曝光
  5. Python程序-打印单词的菱形字符图案
  6. spring mvc 接收表单 bean
  7. AMBA interconnector PL301(一)
  8. 微软发布ASP.NET 5路线图
  9. IOS NSUserDefaults 讲解 用法
  10. 用 Markdown 写作(一)——添加文章页内导航