這里涉及到一個(gè)很重要的寄存器,時(shí)鐘配置寄存器:RCC_CFGR
1 #if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
2 /* #define SYSCLK_FREQ_HSE HSE_VALUE */
3 #define SYSCLK_FREQ_24MHz 24000000
4 #else
5 /* #define SYSCLK_FREQ_HSE HSE_VALUE */
6 /* #define SYSCLK_FREQ_24MHz 24000000 */
7 /* #define SYSCLK_FREQ_36MHz 36000000 */
8 /* #define SYSCLK_FREQ_48MHz 48000000 */
9 /* #define SYSCLK_FREQ_56MHz 56000000 */
10 #define SYSCLK_FREQ_72MHz 72000000
11 #endif
1 /**
2 * @brief Setup the microcontroller system
3 * Initialize the Embedded Flash Interface, the PLL and update the
4 * SystemCoreClock variable.
5 * @note This function should be used only after reset.
6 * @param None
7 * @retval None
8 */
9 void SystemInit (void)
10 {
11 /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
12 /* Set HSION bit */
13 RCC->CR |= (uint32_t)0x00000001;
14
15 /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
16 #ifndef STM32F10X_CL
17 RCC->CFGR &= (uint32_t)0xF8FF0000;
18 #else
19 RCC->CFGR &= (uint32_t)0xF0FF0000;
20 #endif /* STM32F10X_CL */
21
22 /* Reset HSEON, CSSON and PLLON bits */
23 RCC->CR &= (uint32_t)0xFEF6FFFF;
24
25 /* Reset HSEBYP bit */
26 RCC->CR &= (uint32_t)0xFFFBFFFF;
27
28 /* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */
29 RCC->CFGR &= (uint32_t)0xFF80FFFF;
30
31 #ifdef STM32F10X_CL
32 /* Reset PLL2ON and PLL3ON bits */
33 RCC->CR &= (uint32_t)0xEBFFFFFF;
34
35 /* Disable all interrupts and clear pending bits */
36 RCC->CIR = 0x00FF0000;
37
38 /* Reset CFGR2 register */
39 RCC->CFGR2 = 0x00000000;
40 #elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
41 /* Disable all interrupts and clear pending bits */
42 RCC->CIR = 0x009F0000;
43
44 /* Reset CFGR2 register */
45 RCC->CFGR2 = 0x00000000;
46 #else
47 /* Disable all interrupts and clear pending bits */
48 RCC->CIR = 0x009F0000;
49 #endif /* STM32F10X_CL */
50
51 #if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
52 #ifdef DATA_IN_ExtSRAM
53 SystemInit_ExtMemCtl();
54 #endif /* DATA_IN_ExtSRAM */
55 #endif
56
57 /* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers */
58 /* Configure the Flash Latency cycles and enable prefetch buffer */
59 SetSysClock();
60
61 #ifdef VECT_TAB_SRAM
62 SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
63 #else
64 SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
65 #endif
66 }
/**
* @brief Configures the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers.
* @param None
* @retval None
*/
static void SetSysClock(void)
{
#ifdef SYSCLK_FREQ_HSE
SetSysClockToHSE();
#elif defined SYSCLK_FREQ_24MHz
SetSysClockTo24();
#elif defined SYSCLK_FREQ_36MHz
SetSysClockTo36();
#elif defined SYSCLK_FREQ_48MHz
SetSysClockTo48();
#elif defined SYSCLK_FREQ_56MHz
SetSysClockTo56();
#elif defined SYSCLK_FREQ_72MHz
SetSysClockTo72();
#endif
設(shè)置RCC_CFGR寄存器的位參數(shù),使其與外部晶振匹配得到72M系統(tǒng)時(shí)鐘。
1 /**
2 * @brief Sets System clock frequency to 72MHz and configure HCLK, PCLK2
3 * and PCLK1 prescalers.
4 * @note This function should be used only after reset.
5 * @param None
6 * @retval None
7 */
8 static void SetSysClockTo72(void)
9 {
10 __IO uint32_t StartUpCounter = 0, HSEStatus = 0;
11
12 /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/
13 /* Enable HSE */
14 RCC->CR |= ((uint32_t)RCC_CR_HSEON);
15
16 /* Wait till HSE is ready and if Time out is reached exit */
17 do
18 {
19 HSEStatus = RCC->CR & RCC_CR_HSERDY;
20 StartUpCounter++;
21 } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
22
23 if ((RCC->CR & RCC_CR_HSERDY) != RESET)
24 {
25 HSEStatus = (uint32_t)0x01;
26 }
27 else
28 {
29 HSEStatus = (uint32_t)0x00;
30 }
31
32 if (HSEStatus == (uint32_t)0x01)
33 {
34 /* Enable Prefetch Buffer */
35 FLASH->ACR |= FLASH_ACR_PRFTBE;
36
37 /* Flash 2 wait state */
38 FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
39 FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;
40
41
42 /* HCLK = SYSCLK */
43 RCC->CFGR |= (uint32_t)RCC_CFGR_HPRE_DIV1;//AHB一分頻
44
45 /* PCLK2 = HCLK */
46 RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE2_DIV1;
47
48 /* PCLK1 = HCLK */
49 RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2;
50
51 #ifdef STM32F10X_CL
52 /* Configure PLLs ------------------------------------------------------*/
53 /* PLL2 configuration: PLL2CLK = (HSE / 5) * 8 = 40 MHz */
54 /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 5 = 8 MHz */
55
56 RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL |
57 RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC);
58 RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV5 | RCC_CFGR2_PLL2MUL8 |
59 RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV5);
60
61 /* Enable PLL2 */
62 RCC->CR |= RCC_CR_PLL2ON;
63 /* Wait till PLL2 is ready */
64 while((RCC->CR & RCC_CR_PLL2RDY) == 0)
65 {
66 }
67
68
69 /* PLL configuration: PLLCLK = PREDIV1 * 9 = 72 MHz */
70 RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);
71 RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 |
72 RCC_CFGR_PLLMULL9);
73 #else
74 /* PLL configuration: PLLCLK = HSE * 9 = 72 MHz */
75 RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |
76 RCC_CFGR_PLLMULL));
77 RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
78 #endif /* STM32F10X_CL */
79
80 /* Enable PLL */
81 RCC->CR |= RCC_CR_PLLON;
82
83 /* Wait till PLL is ready */
84 while((RCC->CR & RCC_CR_PLLRDY) == 0)
85 {
86 }
87
88 /* Select PLL as system clock source */
89 RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_SW));
90 RCC->CFGR |= (uint32_t)RCC_CFGR_SW_PLL;
91
92 /* Wait till PLL is used as system clock source */
93 while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)0x08)
94 {
95 }
96 }
97 else
98 { /* If HSE fails to start-up, the application will have wrong clock
99 configuration. User can add here some code to deal with this error */
100 }
101 }
上一篇:STM32——時(shí)鐘系統(tǒng)
下一篇:STM32中的位帶(bit-band)操作
推薦閱讀
史海拾趣
CalAmp公司以其卓越的無(wú)線產(chǎn)品、設(shè)備和方案供應(yīng)能力,贏得了業(yè)界的廣泛認(rèn)可。某年,CalAmp與全球知名的電子分銷商Mouser簽署了全球分銷協(xié)議。這一合作使得Mouser能夠備有CalAmp公司的一系列產(chǎn)品,如UHF和VHF收發(fā)器模塊、遙感勘測(cè)模塊以及適用于不同頻帶的無(wú)線通信裝置。這些產(chǎn)品廣泛應(yīng)用于各種無(wú)線通信領(lǐng)域,其方便快速集成的特點(diǎn)大大加快了客戶產(chǎn)品的上市時(shí)間,同時(shí)提供了性價(jià)比極高的無(wú)線解決方案。這一協(xié)議的簽署不僅進(jìn)一步鞏固了CalAmp在全球無(wú)線產(chǎn)品市場(chǎng)的領(lǐng)導(dǎo)地位,也為Mouser帶來(lái)了更多的業(yè)務(wù)機(jī)會(huì)。
隨著技術(shù)的不斷進(jìn)步,璟德(ACX)的產(chǎn)品線也逐漸拓展,涵蓋了濾波器、雙工器、三工器、天線及其模組、藍(lán)牙模組、射頻前端模組等一系列高頻陶瓷元件及模組。這些產(chǎn)品廣泛應(yīng)用于手機(jī)、無(wú)線網(wǎng)絡(luò)、藍(lán)牙、GPS、物聯(lián)網(wǎng)等移動(dòng)終端設(shè)備中,得到了市場(chǎng)的廣泛認(rèn)可。公司的業(yè)績(jī)逐年攀升,客戶群體也不斷擴(kuò)大。
Dongguan Jingyue Electronics Co Ltd非常重視人才戰(zhàn)略和團(tuán)隊(duì)建設(shè)。公司深知人才是企業(yè)發(fā)展的根本,因此不斷加大對(duì)人才的投入力度。通過(guò)引進(jìn)優(yōu)秀人才、加強(qiáng)員工培訓(xùn)、建立激勵(lì)機(jī)制等方式,公司打造了一支高素質(zhì)、專業(yè)化的團(tuán)隊(duì)。這支團(tuán)隊(duì)不僅為公司的發(fā)展提供了有力支持,也為公司的創(chuàng)新和發(fā)展注入了新的活力。
BURGESS一直以其專業(yè)的服務(wù)和優(yōu)質(zhì)的管理而著稱。它非常重視客戶的需求和體驗(yàn),為每一個(gè)擁有超級(jí)游艇的客戶提供量身定制的服務(wù)方案。無(wú)論是游艇的銷售、采購(gòu)、租賃還是技術(shù)顧問(wèn)和經(jīng)營(yíng)管理,BURGESS都能提供全面而專業(yè)的服務(wù)。這種對(duì)細(xì)節(jié)的關(guān)注和對(duì)質(zhì)量的追求,使得BURGESS贏得了眾多高端客戶的信任和青睞,連美國(guó)總統(tǒng)特朗普的超級(jí)游艇都是由BURGESS負(fù)責(zé)管理的。
盡管無(wú)法提供BURGESS在電子行業(yè)的發(fā)展故事,但以上關(guān)于其在游艇經(jīng)紀(jì)行業(yè)的幾個(gè)重要發(fā)展事實(shí),充分展示了BURGESS的卓越實(shí)力和專業(yè)水平。如需更多關(guān)于BURGESS的信息,建議查閱其官方網(wǎng)站或相關(guān)新聞報(bào)道。
馳興電感自成立之初,就深知技術(shù)創(chuàng)新對(duì)于企業(yè)發(fā)展的重要性。公司投入大量資源進(jìn)行研發(fā),成功推出了一系列全自動(dòng)、小型化的SMD繞線電感產(chǎn)品。這些產(chǎn)品不僅具有更高的性能和穩(wěn)定性,而且滿足了市場(chǎng)對(duì)小型化、輕量化的需求,迅速在市場(chǎng)上獲得了廣泛的認(rèn)可。馳興電感憑借技術(shù)創(chuàng)新的優(yōu)勢(shì),逐漸在電子行業(yè)中嶄露頭角。
馳興電感自成立之初,就深知技術(shù)創(chuàng)新對(duì)于企業(yè)發(fā)展的重要性。公司投入大量資源進(jìn)行研發(fā),成功推出了一系列全自動(dòng)、小型化的SMD繞線電感產(chǎn)品。這些產(chǎn)品不僅具有更高的性能和穩(wěn)定性,而且滿足了市場(chǎng)對(duì)小型化、輕量化的需求,迅速在市場(chǎng)上獲得了廣泛的認(rèn)可。馳興電感憑借技術(shù)創(chuàng)新的優(yōu)勢(shì),逐漸在電子行業(yè)中嶄露頭角。
今年要畢業(yè)了,參加了考研??夹膬x的大學(xué)是沒(méi)有機(jī)會(huì)了。但有機(jī)會(huì)去深圳大學(xué)學(xué)習(xí)(可能性還是有的,因?yàn)樯暇€還是可以的吧)。如果去深圳大學(xué)的話,應(yīng)該學(xué)習(xí)光學(xué)成像,這個(gè)方向和醫(yī)療電子很有關(guān)系。 我看了醫(yī)療電子的發(fā) ...… 查看全部問(wèn)答∨ |
Wavecom貓?jiān)赪indows自帶的超級(jí)終端可正常發(fā)送短信,可使用串口編程方式發(fā)送短信時(shí)失???為啥?? Wavecom貓?jiān)赪indows自帶的超級(jí)終端可正常發(fā)送短信,可使用串口編程方式發(fā)送短信時(shí)失?。繛樯???我試驗(yàn)了好幾天了,每次用Windows自帶的超級(jí)終端就可以,一旦換到用Vc++串口編程方式就失敗。用PortMan監(jiān)視數(shù)據(jù)也沒(méi)找到失敗的原因?有做過(guò)碰到過(guò)釘子 ...… 查看全部問(wèn)答∨ |
以前電路設(shè)計(jì)時(shí)用了一塊EMST廠家的SDRAM,工作頻率是133MHz,現(xiàn)在由于停產(chǎn)所以不得以只能換器件,但找到最高工作頻率是200MHz的替代品,不知道能否直接降頻使用?原先板上的時(shí)鐘是133的,請(qǐng)大家?guī)兔μ醾€(gè)建議,謝謝!… 查看全部問(wèn)答∨ |
1.如果想實(shí)現(xiàn)定周期While循環(huán)時(shí),需要用Wait(ms).vi而不是Wait Until Next ms Multiple.vi2.Wait(ms).vi在與代碼并行時(shí)可以保證整個(gè)運(yùn)行時(shí)間為設(shè)定值,這個(gè)功能一般都會(huì)以為是Wait Until Next ms Multiple.vi的特性3.Wait Until Next ms Multipl ...… 查看全部問(wèn)答∨ |
近來(lái)一直在學(xué)習(xí)在fpga如何進(jìn)行異步信號(hào)的處理,有一些心得,開(kāi)個(gè)貼,把自己的一些體會(huì)貼出來(lái),跟大家分享,也期待可以得到高手的指點(diǎn)。 目錄如下: &n ...… 查看全部問(wèn)答∨ |
|
基礎(chǔ)的LED燈和數(shù)碼管同時(shí)點(diǎn)亮的問(wèn)題 如題,我在練習(xí)的時(shí)候遇到了一個(gè)可能比較基本的問(wèn)題:不通過(guò)定時(shí)器,只寫(xiě)一個(gè)delay函數(shù)來(lái)實(shí)現(xiàn)LED燈的閃爍和數(shù)碼管的點(diǎn)亮。 我自己用這種方式寫(xiě)的(8個(gè)LED閃爍,點(diǎn)亮2個(gè)數(shù)碼管),無(wú)法實(shí)現(xiàn)上述功能。LED能閃爍,但是兩位數(shù)碼管中的第一位不能穩(wěn)定顯 ...… 查看全部問(wèn)答∨ |
|
分立電阻器在最后的封裝狀態(tài)要進(jìn)行單點(diǎn)通過(guò)/失敗測(cè)試,這對(duì)確保產(chǎn)品符合制造商性能指標(biāo)至關(guān)重要,而且可以在出貨前識(shí)別劣質(zhì)電阻器以及輕微不良的電阻器。通常要對(duì)電阻器進(jìn)行兩項(xiàng)測(cè)試:電阻器電壓系數(shù)測(cè)試以及電阻器公差帶測(cè)試。為了確保產(chǎn)品質(zhì)量 ...… 查看全部問(wèn)答∨ |
經(jīng)典國(guó)外照明設(shè)計(jì)叢書(shū)《照明設(shè)計(jì)入門(mén)》 replyreload += \',\' + 1432027;不需要或者已經(jīng)有的朋友可以略過(guò)。文件格式:PDF 本書(shū)是具有照明實(shí)踐經(jīng)驗(yàn)的三位作者同心協(xié)力、共同編著而成的。主要以想要學(xué)習(xí)照明設(shè)計(jì)的人,已經(jīng)在從事照明設(shè)計(jì)的人,想要把照明設(shè)計(jì) ...… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 如何計(jì)算單片機(jī)的波特率
- STM32單片機(jī)優(yōu)先級(jí)的定義
- 如何采用STM32單片機(jī)實(shí)現(xiàn)IAP功能
- STM32單片機(jī)對(duì)NAND Flash的讀寫(xiě)以及在ASF中的使用
- STM32單片機(jī)SysTick系統(tǒng)滴答功能解析
- STM32單片機(jī)定時(shí)器的時(shí)鐘源設(shè)置
- STM32單片機(jī)PID算法的原則及應(yīng)用方法
- 如何采用STM32單片機(jī)中斷向量控制器NVIC來(lái)分配優(yōu)先級(jí)的數(shù)量
- STM32單片機(jī)固件庫(kù)建立工程的方法及步驟
- 中國(guó)研究人員發(fā)明全新動(dòng)作好奇心算法 增強(qiáng)不確定環(huán)境下的自主導(dǎo)航
- 技術(shù)解析|沃爾沃XC70超級(jí)混動(dòng)有什么亮點(diǎn)?
- 小米汽車:磁吸物理按鍵已接入米家,可通過(guò)APP操控
- 專家專論 | 顧劍民:L2級(jí)輔助駕駛激光雷達(dá)“價(jià)格歸零”
- 近一個(gè)月投資五家!京東密集落子具身智能機(jī)器人賽道
- 海外動(dòng)力電池裝車量TOP10:3家落榜 一新上榜中企暴增逾10倍
- 吉利汽車:全域AI守護(hù)輔助駕駛安全
- 松下汽車系統(tǒng)與VicOne深化合作 共拓新一代智能座艙系統(tǒng)安全創(chuàng)新
- 汽車MCU的“芯”浪潮
- 具身智能如何大規(guī)模推廣?丨具身智能機(jī)器人高質(zhì)量發(fā)展
- 嵌入式Rust修煉營(yíng):動(dòng)手寫(xiě)串口燒錄工具和MCU例程,Rust達(dá)人Hunter直播帶你入門(mén)Rust
- 有獎(jiǎng)直播|TI 符合 USB 2.0 標(biāo)準(zhǔn)的最新隔離器件
- 【Molex莫仕工業(yè)通訊與安全解決方案】
- 下載設(shè)計(jì)資源,贏取“會(huì)說(shuō)話”的啤酒托!
- 有獎(jiǎng)直播:是德科技高速芯片設(shè)計(jì)新技術(shù)研討會(huì)
- 直播已結(jié)束--STM32全球線上峰會(huì) | 新品STM32N6重磅發(fā)布,50+開(kāi)發(fā)板等你抽!
- OMNIMATE® 4.0鼠籠式板載連接器
- 【泰克注冊(cè)觀看有禮】 PCI-SIG 前主席解析:PCI Express5.0測(cè)試方案和測(cè)量挑戰(zhàn)
- 【問(wèn)題征集】大學(xué)生美國(guó)TI行,你問(wèn)我送禮!
- 智能移動(dòng)機(jī)器人,助力自動(dòng)化車間物流高效化
- 科沃斯在服務(wù)機(jī)器人中身先士卒,與業(yè)界同仁共謀未來(lái)
- 美國(guó)開(kāi)發(fā)出“壁虎”仿生機(jī)器人,用于太空垃圾清理
- Anki Cozmo智能玩具機(jī)器人介紹
- 抗癌小天使“微型機(jī)器人”
- 重磅!威盛x86處理器、芯片組技術(shù)轉(zhuǎn)讓上海兆芯:只要17.2億元
- 特斯拉Model Y或于2021年初交付歐洲消費(fèi)者
- AMD350億美元拿下賽靈思 與英特爾英偉達(dá)三分天下
- 金壇鹽穴壓縮空氣儲(chǔ)能項(xiàng)目?jī)身?xiàng)團(tuán)體標(biāo)準(zhǔn)獲準(zhǔn)立項(xiàng)
- 一加OnePlus Nord N100新機(jī)價(jià)格與上市日期曝光
- 星載SAR相控陣天線熱變形誤差分析
- (已結(jié)束)【搶樓有獎(jiǎng)】扒一扒KEYSIGHT頻譜分析儀,評(píng)論贏好禮
- 【AB32VG1開(kāi)發(fā)板測(cè)評(píng)】雙串口通訊及出現(xiàn)的問(wèn)題
- [個(gè)人經(jīng)驗(yàn)談]PIC 的硬件死鎖 ??
- TI MCU 與無(wú)線連接 技術(shù)研討會(huì)
- 分享示波器安全測(cè)量220V市電的方法
- 驅(qū)動(dòng)無(wú)刷電機(jī)為什么要用算法
- SimplicityStudio升級(jí)到3.1
- zigbee路由算法在MATLAB中如何仿真啊
- 關(guān)于異步復(fù)位.同步釋放