最近手上有了塊金牛的stm32實(shí)驗(yàn)板,興致勃勃的測(cè)試各種功能,但是碰到一個(gè)問(wèn)題,用stm32 的外設(shè)庫(kù)寫(xiě)串口程序,發(fā)現(xiàn)串口速度與實(shí)際不一樣。一度懷疑是外設(shè)庫(kù)的問(wèn)題,但是用mdk的外設(shè)監(jiān)控查看后,發(fā)現(xiàn)實(shí)際的串口速度為自定義的3倍,如圖
很疑惑,本人有一種鉆牛角尖的精神,因此一度debug下去,發(fā)現(xiàn)這個(gè)設(shè)置是在如下關(guān)鍵語(yǔ)句
(位于 外設(shè)庫(kù) 中的 USART_Init定義語(yǔ)句,在stm32f10x_usart.c中)
USART_Init初始化函數(shù)
RCC_GetClocksFreq(&RCC_ClocksStatus);
if (usartxbase == USART1_BASE)
{
apbclock = RCC_ClocksStatus.PCLK2_Frequency;
}
else
{
apbclock = RCC_ClocksStatus.PCLK1_Frequency;
}
integerdivider = ((0x19 * apbclock) / (0x04 * (USART_InitStruct->USART_BaudRate)));
tmpreg = (integerdivider / 0x64) << 0x04;
fractionaldivider = integerdivider - (0x64 * (tmpreg >> 0x04));
tmpreg |= ((((fractionaldivider * 0x10) + 0x32) / 0x64)) & ((uint8_t)0x0F);
USARTx->BRR = (uint16_t)tmpreg;
其中,最關(guān)鍵的是在
apbclock = RCC_ClocksStatus.PCLK2_Frequency;這一句,其他都以此來(lái)進(jìn)行加減乘除得到相應(yīng)的寄存器數(shù)值,debug的時(shí)候發(fā)現(xiàn)這個(gè)值為16M,但是,我本人的外部晶振是25M,經(jīng)過(guò)pll倍頻后市50M,和這個(gè)不一樣。
是沒(méi)錯(cuò)的,但是,這個(gè)apbclock是怎么得出的16兆的,繼續(xù)深入stm32f10x_rcc.c里面RCC_GetClocksFreq定義查看,查看到如下結(jié)果
switch (tmp)
{
case 0x00:
RCC_Clocks->SYSCLK_Frequency = HSI_Value;
break;
case 0x04:
RCC_Clocks->SYSCLK_Frequency = HSE_Value;
break;
case 0x08:
pllmull = RCC->CFGR & CFGR_PLLMull_Mask;
pllsource = RCC->CFGR & CFGR_PLLSRC_Mask;
我是采用外部晶振作為系統(tǒng)時(shí)鐘的,也就是這里的case 0x04,
RCC_Clocks->SYSCLK_Frequency = HSE_Value;
來(lái)源于此HSE_Value;查看默認(rèn)的采用外部晶振的定義是8000000,也就是說(shuō),如果你的系統(tǒng)的外部晶振不是8M,這個(gè)速度計(jì)算就會(huì)錯(cuò),我的系統(tǒng)是25兆,差了接近三倍,與檢測(cè)到的錯(cuò)誤速度一致,用查找搜索HSE_Value的定義,改成25000000就好了。系統(tǒng)完美運(yùn)行,這算是這幾天一直迷惑有了一個(gè)完美的答案吧
我圖方便是把整個(gè)項(xiàng)目的HSI_Value都改成了2500000,大家可以去stm32f10x.h里修改。
上一篇:對(duì)STM32 NIVC的了解
下一篇:STM32紅牛開(kāi)發(fā)板非固件庫(kù)控制LED
推薦閱讀最新更新時(shí)間:2025-05-08 11:40

設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 【下載】LAT1526 利用SPI的下溢實(shí)現(xiàn)回顯功能
- 【下載】LAT1509 STM32G0B1的FDCAN進(jìn)行通信丟包和多包案例分享
- 【下載】LAT1511 運(yùn)行Ux_Host_HUB_HID_MSC通過(guò)Hub連接U盤(pán)讀寫(xiě)不穩(wěn)定問(wèn)題分析
- 【下載】LAT1466 USB x Device HID Standalone的移植
- 【下載】LAT1488 STM32 USBxDevice MSC standalone移植示例
- 【下載】LAT1482 STM32G0單線(xiàn)串口通信幀錯(cuò)誤問(wèn)題解析
- 人形機(jī)器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機(jī)器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計(jì)
- 小型傾轉(zhuǎn)旋翼機(jī)的無(wú)刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)
- 超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
- 基于GPS自動(dòng)授時(shí)的無(wú)線(xiàn)智能控制器的設(shè)計(jì)
- 基于PTR2000的無(wú)線(xiàn)氣象信息采集系統(tǒng)設(shè)計(jì)
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無(wú)人飛行器機(jī)載穩(wěn)定云臺(tái)控制系統(tǒng)的設(shè)計(jì)
- 匠芯創(chuàng)推出面向具身智能高性能實(shí)時(shí)處理器M7000
- LT3091HT7 在極低輸出電壓下低壓降操作的典型應(yīng)用
- LT1021DCS8-10 負(fù)串聯(lián)電壓基準(zhǔn)的典型應(yīng)用
- 基于 MCF5233CVM150 MPU ColdFire MCF5xxx 處理器的 M5235EVB、M523xEVB 評(píng)估板
- 使用 Analog Devices 的 LTC4235IUFD-2 的參考設(shè)計(jì)
- 基于CH334H與AT32F403A的電流檢測(cè)USB HUB
- 【CW32】BLDC無(wú)刷驅(qū)動(dòng)器
- 【已驗(yàn)證】三合一NFC門(mén)卡
- SY89853U,用于 GB 以太網(wǎng)交換機(jī)的時(shí)鐘多路復(fù)用器的評(píng)估板
- LT3973EDD-3.3 12V 降壓轉(zhuǎn)換器的典型應(yīng)用
- NCP3066SCBSTGEVB,基于 NCP3066 的 SOIC8 升壓演示評(píng)估板,NCP3066 是一款單片開(kāi)關(guān)穩(wěn)壓器,旨在為高亮度 LED 提供恒定電流
- 氣體檢測(cè)儀報(bào)警怎么辦?
- 各路技術(shù)齊綻放:超寬帶和低功耗藍(lán)牙的結(jié)合如何實(shí)現(xiàn)創(chuàng)新
- 摩托羅拉Moto G22歐洲發(fā)布:配聯(lián)發(fā)科Helio G37芯片
- NDI傳輸協(xié)議技術(shù)的原理方法
- 【STM32H7教程】第38章 STM32H7的LPTIM低功耗定時(shí)器應(yīng)用之超時(shí)喚醒
- Microchip發(fā)布升級(jí)版編程器和調(diào)試器開(kāi)發(fā)工具
- 航向姿態(tài)系統(tǒng)自動(dòng)測(cè)試系統(tǒng)的組成原理和實(shí)現(xiàn)軟硬件設(shè)計(jì)
- 吉利電池安全標(biāo)準(zhǔn)升級(jí),“神盾金磚電池”有什么技術(shù)亮點(diǎn)?
- 中國(guó)汽車(chē)工程學(xué)會(huì)出臺(tái)全固態(tài)電池新標(biāo)準(zhǔn)
- Allegro如何用技術(shù)定義汽車(chē)電子新范式
- 恩智浦半導(dǎo)體推出汽車(chē)級(jí)開(kāi)發(fā)平臺(tái)OrangeBox 2.0 旨在促進(jìn)安全的汽車(chē)通信
- 三大上市公司加碼/跨界固態(tài)電池關(guān)鍵材料!
- 一大波全固態(tài)電池新產(chǎn)品來(lái)了!
- 欣旺達(dá)/瑞浦/恩捷/力華/杜爾······12大企業(yè)電池行業(yè)新品來(lái)襲
- 新唐科技發(fā)布第四代『GerdaTM』系列,車(chē)用HMI顯示IC產(chǎn)品開(kāi)始量產(chǎn)
- 寧德時(shí)代的電+Momenta的腦,“智電雙極”重構(gòu)全球汽車(chē)格局
- 一文讀懂:固態(tài)電池產(chǎn)業(yè)鏈通覽
- 有獎(jiǎng)直播報(bào)名中|基于英飛凌AIROC™ CYW20829低功耗藍(lán)牙芯片的無(wú)線(xiàn)組網(wǎng)解決方案
- 平頭哥RVB2601開(kāi)源應(yīng)用方案征集來(lái)啊~100套板卡助陣,天貓精靈智能套裝禮品組等你抱走~
- 是德科技有獎(jiǎng)直播:灣區(qū)圓桌派-穿越頻譜壁壘:毫米波技術(shù)的創(chuàng)新之路
- 安森美半導(dǎo)體工業(yè)物聯(lián)網(wǎng)解決方案下載有驚喜!
- TI 嵌入式處理主題直播月|報(bào)名觀看直播贏好禮【低功耗WiFi MCU、Sitara AM57X平臺(tái)、機(jī)器學(xué)習(xí)】
- ADI有獎(jiǎng)下載活動(dòng)之2——太陽(yáng)能光伏發(fā)電解決方案
- 【爆款推薦】4路輸出、超簡(jiǎn)約電源開(kāi)發(fā)板,只需1塊錢(qián)!
- 物聯(lián)網(wǎng)年中大考:無(wú)線(xiàn)連接技術(shù)知多少?
- 基于STM32F407 HAL庫(kù)的Flash編程操作
- 中國(guó)基因測(cè)序市場(chǎng)規(guī)模預(yù)測(cè) 2022年市場(chǎng)將破150億元
- IAR中設(shè)置了中斷向量偏移時(shí)進(jìn)行仿真的注意事項(xiàng)
- ARM之后還有誰(shuí),還是只怪對(duì)手太強(qiáng)大?
- 使用gcc編譯STM32遇到的問(wèn)題
- 日本印度欲聯(lián)手制造機(jī)器人士兵 外媒稱(chēng)意在對(duì)付中國(guó)
- 機(jī)器人在醫(yī)療保健行業(yè)的應(yīng)用優(yōu)勢(shì)
- 日本采用機(jī)器人調(diào)節(jié)用工勞動(dòng)力
- AGV機(jī)器人具備有哪些優(yōu)勢(shì)
- 歐洲電池“大躍進(jìn)” 亞歐之爭(zhēng)日趨激烈
- AMI編碼及Chipscope詳細(xì)操作
- 頒獎(jiǎng)啦|您是如何采購(gòu)或選擇電子元器件的?
- PIC單片機(jī)初學(xué)者需要學(xué)習(xí)掌握的要點(diǎn):
- 計(jì)算機(jī)集成和擴(kuò)展的思考
- msp430單片機(jī)開(kāi)發(fā)實(shí)錄(13)
- 電流檢測(cè)串?dāng)_問(wèn)題?
- 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)
- 汽車(chē)ABS系統(tǒng)的使用維護(hù)1
- 電子藥盒提醒器方案
- 關(guān)于綜合中出現(xiàn)latch的問(wèn)題