亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

晶振對stm32串口數據傳輸的影響是什么

發布時間:2021-12-31 09:31:55 來源:億速云 閱讀:479 作者:iii 欄目:互聯網科技

本篇內容介紹了“晶振對stm32串口數據傳輸的影響是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

晶振對stm32串口數據傳輸的影響是什么

如圖位置,把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

有源晶振一般比無源晶振貴,優點是輸出波形完美,不受寄生電容干擾,缺點是輸出頻率不可調,無源晶振一般比芯片內部晶振效果好十倍,由內部脈沖觸發

“晶振對stm32串口數據傳輸的影響是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

stm
AI

公安县| 尼勒克县| 井陉县| 济阳县| 子洲县| 乡宁县| 广宁县| 原阳县| 桐梓县| 会理县| 洛扎县| 百色市| 龙岩市| 图们市| 扎兰屯市| 景东| 连州市| 桐乡市| 清苑县| 凤山县| 平利县| 南陵县| 资阳市| 宁晋县| 长汀县| 博白县| 泗洪县| 中山市| 丹寨县| 西乌珠穆沁旗| 平果县| 天全县| 万州区| 宣威市| 沙雅县| 满洲里市| 准格尔旗| 兰西县| 临清市| 凤台县| 讷河市|