娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

這兩天碰到關于CAN總線的問題,當檢查配置與CAN分析儀都沒問題的時候,陷入了迷茫期,之后在程序中找到對于CAN總線時鐘的理解,想到了APB1的時鐘可能有問題,對于在這里就對時鐘再一次的進行總結。


關于時鐘的文件主要有兩個:1.system_stm32f10x.c ,2.stm32f10x.h


1.首先在啟動文件中我們找到SystemInit()函數

在這里插入圖片描述

我們可以看到關于時鐘的配置是在main函數之前的,接下來就看system_stm32f10x.c文件內:


void SystemInit (void)

{

  /* Reset the RCC clock configuration to the default reset state(for debug purpose) */

  /* Set HSION bit */

  RCC->CR |= (uint32_t)0x00000001;


  /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */

#ifndef STM32F10X_CL

  RCC->CFGR &= (uint32_t)0xF8FF0000;

#else

  RCC->CFGR &= (uint32_t)0xF0FF0000;

#endif /* STM32F10X_CL */   

  

  /* Reset HSEON, CSSON and PLLON bits */

  RCC->CR &= (uint32_t)0xFEF6FFFF;


  /* Reset HSEBYP bit */

  RCC->CR &= (uint32_t)0xFFFBFFFF;


  /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */

  RCC->CFGR &= (uint32_t)0xFF80FFFF;


#ifdef STM32F10X_CL

  /* Reset PLL2ON and PLL3ON bits */

  RCC->CR &= (uint32_t)0xEBFFFFFF;


  /* Disable all interrupts and clear pending bits  */

  RCC->CIR = 0x00FF0000;


  /* Reset CFGR2 register */

  RCC->CFGR2 = 0x00000000;

#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)

  /* Disable all interrupts and clear pending bits  */

  RCC->CIR = 0x009F0000;


  /* Reset CFGR2 register */

  RCC->CFGR2 = 0x00000000;      

#else

  /* Disable all interrupts and clear pending bits  */

  RCC->CIR = 0x009F0000;

#endif /* STM32F10X_CL */

    

#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)

  #ifdef DATA_IN_ExtSRAM

    SystemInit_ExtMemCtl(); 

  #endif /* DATA_IN_ExtSRAM */

#endif 


  /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */

  /* Configure the Flash Latency cycles and enable prefetch buffer */

  SetSysClock();


#ifdef VECT_TAB_SRAM

  SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */

#else

  SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */

#endif 

}


然后我們回憶一下在STM32中外設主要用到的時鐘是APB1:


     RCC_APB1Periph_TIM2, RCC_APB1Periph_TIM3, RCC_APB1Periph_TIM4,


     RCC_APB1Periph_TIM5, RCC_APB1Periph_TIM6, RCC_APB1Periph_TIM7,


     RCC_APB1Periph_WWDG, RCC_APB1Periph_SPI2, RCC_APB1Periph_SPI3,


     RCC_APB1Periph_USART2, RCC_APB1Periph_USART3, RCC_APB1Periph_USART4, 


     RCC_APB1Periph_USART5, RCC_APB1Periph_I2C1, RCC_APB1Periph_I2C2,


     RCC_APB1Periph_USB, RCC_APB1Periph_CAN1, RCC_APB1Periph_BKP,


     RCC_APB1Periph_PWR, RCC_APB1Periph_DAC, RCC_APB1Periph_CEC,


     RCC_APB1Periph_TIM12, RCC_APB1Periph_TIM13, RCC_APB1Periph_TIM14


void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)

{

  /* Check the parameters */

  assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph));

  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)

  {

    RCC->APB1ENR |= RCC_APB1Periph;

  }

  else

  {

    RCC->APB1ENR &= ~RCC_APB1Periph;

  }

}


以及APB2:


     RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB,


     RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_GPIOE,


     RCC_APB2Periph_GPIOF, RCC_APB2Periph_GPIOG, RCC_APB2Periph_ADC1,


     RCC_APB2Periph_ADC2, RCC_APB2Periph_TIM1, RCC_APB2Periph_SPI1,


     RCC_APB2Periph_TIM8, RCC_APB2Periph_USART1, RCC_APB2Periph_ADC3,


     RCC_APB2Periph_TIM15, RCC_APB2Periph_TIM16, RCC_APB2Periph_TIM17,


     RCC_APB2Periph_TIM9, RCC_APB2Periph_TIM10, RCC_APB2Periph_TIM11     


void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)

{

  /* Check the parameters */

  assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));

  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)

  {

    RCC->APB2ENR |= RCC_APB2Periph;

  }

  else

  {

    RCC->APB2ENR &= ~RCC_APB2Periph;

  }

}


AHB:


@arg RCC_AHBPeriph_DMA1


@arg RCC_AHBPeriph_DMA2


@arg RCC_AHBPeriph_SRAM


@arg RCC_AHBPeriph_FLITF


@arg RCC_AHBPeriph_CRC


@arg RCC_AHBPeriph_OTG_FS    


@arg RCC_AHBPeriph_ETH_MAC   


@arg RCC_AHBPeriph_ETH_MAC_Tx


@arg RCC_AHBPeriph_ETH_MAC_Rx


@arg RCC_AHBPeriph_DMA1


@arg RCC_AHBPeriph_DMA2


@arg RCC_AHBPeriph_SRAM


@arg RCC_AHBPeriph_FLITF


@arg RCC_AHBPeriph_CRC


@arg RCC_AHBPeriph_FSMC


@arg RCC_AHBPeriph_SDIO


void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState)

{

  /* Check the parameters */

  assert_param(IS_RCC_AHB_PERIPH(RCC_AHBPeriph));

  assert_param(IS_FUNCTIONAL_STATE(NewState));


  if (NewState != DISABLE)

  {

    RCC->AHBENR |= RCC_AHBPeriph;

  }

  else

  {

    RCC->AHBENR &= ~RCC_AHBPeriph;

  }

}


STM32F103主要就是這兩大時鐘,高速和低速,很明顯我們可以看到CAN1屬于APB1的低速時鐘,但是是多少呢?我們在每換一個板的時候都應該檢查一下。因為我們有一個不確定的外部時鐘。


2.接下來就看stm32f10x.h文件的了

關于外部時鐘配置的很重要的一個參數是HSE_VALUE了,所以外部時鐘晶振我們選用12M的

在這里插入圖片描述

接下來我們就可以返回SystemInit()函數看看APB1的配置過程了:

1.找到SetSysClock()函數,跟著進入:SetSysClockTo72()函數。

在這里插入圖片描述

之后我們就來到了這里,一個充滿期待的地方"#else"之后我們配置的外部晶振是12M要得到72M的PLL所以我們要給的倍頻系數是6而之前我給的是9所以當時的時鐘是錯的,但是程序還是能跑所以在當時沒檢查出來,所以通過這件事就可以看出,有時候不是問題有多難,而是你的方法有沒有效果,解決問題的能力就是這樣一步一步的成長起來的。

關鍵字:STM32RBT6  時鐘問題  CAN總線 引用地址:STM32RBT6時鐘問題總結

上一篇:關于STM32的裸機多任務多線程心得
下一篇:STM32外部中斷事件控制器EXTI概念及使用方法

推薦閱讀

1T系列單片機的小范圍延時計算公式(us) :(4*t + 10) * 1/fvoid delay(u8 t){ while(--t);}另外再來看一個nop相關的/* 1T系列單片機在12M晶振下產生指定us數的軟件延時 */void Delay_us(unsigned char us){ do { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); ...
翻譯自——electronicdesign,Hwee Yng Yeo 概要 ICT(In—Circuit—Tester),自動在線測試儀,是現代電子企業必備的PCBA(Printed- Circuit Board Assembly,印刷電路板組件)生產的測試設備,ICT使用范圍廣,測量準確性高,對檢測出的問題指示明確,即使電子技術水準一般的工人處理有問題的PCBA也非常容易。使用ICT能極大地提高生產效率,降低生產成...
據南麟電子微信公眾號消息,該公司近日新增近1.6億元人民幣的B+輪融資,2020年已累計完成融資2億元。據悉,本輪融資由江蘇新潮科技集團和南京金浦新潮新興產業股權投資基金聯合領投,大唐電信、盛宇投資、同山投資、公司董監高、核心員工等機構和個人積極跟投。募集資金將用于補充運營流動資金以及購置集成電路封測設備擴大產能,以應對日益增長的客戶需求...
一、實驗原理上一章已經解釋的很清楚了,如何將所要運行的user_bin程序定位到DRAM中,這一章要進行重定位到DRAM后運行LCD程序,實際上一章中BL2中程序可以不用改動,直接重寫我們的USER目錄下的程序即可,將USER目錄下的LED燈閃爍程序用LCD程序替換就行,最后編譯出的程序名字也叫user_bin.bin即可,這樣也可以用上一章中的fast_fuse.sh進行燒寫到SD卡運行...

史海拾趣

問答坊 | AI 解惑

微型高效調頻發射模塊

1。調頻發射模塊FM1 19元一個          調頻發射模塊FM1的體積只有10X36X6毫米(其中高度僅指器件中的最高點),大小和小手指差不多,工作電壓為3~8伏,最佳工作電壓為6伏,對應的工作電流4~50毫安,發 ...…

查看全部問答∨

一個相當完整的畢業設計論文~~論文中的很多部分你肯定能用得著

智能型充電器的電源和顯示的設計,論文中的很多部分你肯定能用得著 朋友們下載后要回復呀,謝謝支持!! [ 本帖最后由 flynee 于 2008-6-11 13:46 編輯 ]…

查看全部問答∨

電子工業出版社“國外電子與通信教材系列 ”目錄1

1、 應用Web和MATLAB的信號與系統基礎(第二版) 作者:(美)Edward Kamen, Bonnie Heck, Ed Kamen 2、CMOS 射頻集成電路設計(英文版) 作者:美Lee,T.H.著    3、MATLAB原理與工程應用 作者:(美)Edward B.Magrab    ...…

查看全部問答∨

step7 v5.3 的授權文件

解壓到s7bin 文件夾下,運行下就可以用了. …

查看全部問答∨

現在千兆網都用什么方案?

來自EEWORLD合作群arm fpga linux 嵌入1(63762526) 群主:wangkj…

查看全部問答∨

EBOOT運行時在倒讀秒處死機

EBOOT運行時,老是在倒讀秒處死掉,然后怎么都沒反應了。請問什么原因,是不是硬件中斷出了問題? 如下所示: Press [ENTER] to download image stored on boot media, or [SPACE] to enter boot monitor. Initiating image download in 3 sec ...…

查看全部問答∨

好機會!赴加拿大軟件技術工程師4~10萬加元年薪

好機會!赴加拿大軟件技術工程師4~10萬加元年薪 1、高級動畫特效編輯 2、嵌入式軟件設計 3、MIS軟件設計 4、2D與3D多媒體軟件應用 5、軟件產品開發 6、通信軟件設計 以上職位要求: 1、本科學歷或2年以上計算機專業學習證書 2、達到英語或 ...…

查看全部問答∨

powerpc體系結構

這是經典的powerpc體系結構的文檔,傳上來…

查看全部問答∨

【MSP430共享】基于繼電保護裝置相位控制的設計

結合繼電保護裝置對相住測試的需要, 介紹) ~ MS P 4 3 0 單片機產生多路可控制相位的正弦信號來模擬測試繼電保護裝置的實際動作。 該系統利用了MS P 4 3 0 單 片機的片內資源, 既簡化了系統設計, 又提高了系統的可靠性。  [ 本帖最后由 鑫 ...…

查看全部問答∨

求一塊stm32f103的開發板

求一塊stm32f103的開發板,最好是閑置的或者是二手的板子,希望有全套的開發工具,外設比較豐富,最好可以帶全板原理圖,木有錢啊,希望有的大俠幫助一下,或者推薦一款好的板子,謝謝啦,新手發帖。。。 qq:1147047562 tel:15986318652 [ 本帖最 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 鸡西市| 湖北省| 宣城市| 龙里县| 花莲市| 石林| 荃湾区| 阳新县| 鄯善县| 淮滨县| 饶河县| 赫章县| 锡林郭勒盟| 密云县| 韶山市| 吴堡县| 鄂托克前旗| 德安县| 梧州市| 托里县| 二连浩特市| 宾川县| 定西市| 朔州市| 东乡县| 茂名市| 志丹县| 乌苏市| 中超| 福贡县| 洛扎县| 永城市| 乐陵市| 天津市| 铜鼓县| 南部县| 石嘴山市| 合肥市| 肃北| 象山县| 七台河市|