一直沒(méi)搞清楚stm32定時(shí)器的TIM_OC1PreloadConfig、TIM_ARRPreloadConfig函數(shù)的作用,影子寄存器、預(yù)裝載寄存器、重載寄存器的概念。今天來(lái)研究一下:
首先看定時(shí)器的框圖:
圖中有陰影的小方框,代表該功能對(duì)應(yīng)的寄存器有影子寄存器,也就是:PSC預(yù)分頻器、自動(dòng)重裝載寄存器、REP寄存器和4個(gè)通道的捕獲/比較寄存器。
可以看到這幾個(gè)寄存器都是經(jīng)常用到的,而且存在定時(shí)器工作過(guò)程中修改他們的可能性。在定時(shí)器工作過(guò)程中修改他們的值,就會(huì)出現(xiàn)一個(gè)問(wèn)題了:如果上次ARR的值是200,通道1的比較寄存器CCR1值是100,產(chǎn)生占空比為50%的PWM。這個(gè)時(shí)候我要改變PWM的頻率,我把ARR的值改為100,CCR1的值還沒(méi)來(lái)得及更改,那么占空比肯定就會(huì)出問(wèn)題,所以我就需要讓他們同步修改。以前ARR=200,CCR1=100,提高頻率后ARR=100,CCR1=50,我需要這兩個(gè)寄存器的值同步修改,最好還是讓他們計(jì)數(shù)完一個(gè)周期后再修改,那么進(jìn)入下一個(gè)周期ARR、CCR1同步修改過(guò)去,對(duì)PWM的占空比就沒(méi)有一點(diǎn)影響了。
為了達(dá)到這個(gè)目的,就得先用一個(gè)寄存器A把修改的值保存好(ARR_A=100,CCR1_A=50),一旦上一個(gè)周期結(jié)束,給一個(gè)信號(hào),立即就把寄存器A的值賦值過(guò)去,立即生效,這樣就完成了最理想的在定時(shí)器運(yùn)行中修改寄存器的過(guò)程。下面對(duì)應(yīng)到stm32中:
有影子寄存器的寄存器實(shí)際上對(duì)應(yīng)了兩個(gè)寄存器:一個(gè)是用戶可以寫入或讀出數(shù)據(jù)的寄存器,稱為preload register(預(yù)裝載寄存器),另一個(gè)是用戶看不見的、但在操作中真正起作用的寄存器稱為shadow register(影子寄存器)。我們修改的定時(shí)器周期、預(yù)分頻系數(shù)、通道的比較值等都是修改的表面那個(gè)預(yù)裝載寄存器,要讓這個(gè)修改起作用,就還要把預(yù)裝載寄存器的值賦給影子寄存器才行。
從ARR預(yù)裝載寄存器傳送到影子寄存器,有兩種方式,一種是立刻更新,一種是等觸發(fā)事件之后更新;這兩種方式主要取決于寄存器TIMx->CR1中的“APRE”位:
APRE=0,當(dāng)ARR值被修改時(shí),同時(shí)馬上更新影子寄存器的值;
APRE=1,當(dāng)ARR值被修改時(shí),必須在下一次事件UEV發(fā)生后才能更新影子寄存器的值;
這就是TIM_ARRPreloadConfig(TIM1, ENABLE);函數(shù)的作用:
#define TIM_CR1_ARPE ((uint16_t)0x0080)
void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState)
{
if (NewState != DISABLE)
{
TIMx->CR1 |= TIM_CR1_ARPE;
}
else
{
TIMx->CR1 &= (uint16_t)~((uint16_t)TIM_CR1_ARPE);
}
}
4個(gè)通道的捕獲/比較寄存器也是同樣的道理,從CCRx的預(yù)裝載寄存器傳送到影子寄存器由下面的位控制:
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable);函數(shù)的作用就是修改這個(gè)位:
#define TIM_CCMR1_OC1PE ((uint16_t)0x0008)
#define TIM_OCPreload_Enable ((uint16_t)0x0008)
void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
{
uint16_t tmpccmr1 = 0;
tmpccmr1 = TIMx->CCMR1;
tmpccmr1 &= (uint16_t)~((uint16_t)TIM_CCMR1_OC1PE);
tmpccmr1 |= TIM_OCPreload;
TIMx->CCMR1 = tmpccmr1;
}
再給幾個(gè)時(shí)序圖:
1、APRE=0,直接給ARR影子寄存器賦值的情況:
可以看到之前ARR=FF,給ARR賦值為36后,馬上就生效了,并在等于36時(shí)發(fā)生了溢出。
2、APRE=1,在下一個(gè)周期再更新值的情況:
可以看到之前ARR=F5,這個(gè)時(shí)候修改ARR的值為36,只有表面的重加載寄存器值更改了,真正起作用的影子寄存器并沒(méi)有更改。等到上一個(gè)周期結(jié)束,發(fā)生更新事件,影子寄存器才更改。
上一篇:使用stm32的ADC得到準(zhǔn)確的電壓
下一篇:STM32之電量采集
推薦閱讀
史海拾趣
為了進(jìn)一步擴(kuò)大市場(chǎng)份額和提升技術(shù)實(shí)力,ELANTEC積極尋求收購(gòu)和整合的機(jī)會(huì)。2003年,ELANTEC成功收購(gòu)了美國(guó)半導(dǎo)體公司Intersil的移動(dòng)通信部門,獲得了先進(jìn)的移動(dòng)通信技術(shù)。隨后,ELANTEC又陸續(xù)收購(gòu)了多家半導(dǎo)體公司,包括NEC電子的半導(dǎo)體業(yè)務(wù)部門和三菱電機(jī)的半導(dǎo)體業(yè)務(wù)部門等。這些收購(gòu)和整合不僅增強(qiáng)了ELANTEC的技術(shù)實(shí)力,還擴(kuò)大了其市場(chǎng)份額。
為了進(jìn)一步擴(kuò)大市場(chǎng)份額和提升技術(shù)實(shí)力,ELANTEC積極尋求收購(gòu)和整合的機(jī)會(huì)。2003年,ELANTEC成功收購(gòu)了美國(guó)半導(dǎo)體公司Intersil的移動(dòng)通信部門,獲得了先進(jìn)的移動(dòng)通信技術(shù)。隨后,ELANTEC又陸續(xù)收購(gòu)了多家半導(dǎo)體公司,包括NEC電子的半導(dǎo)體業(yè)務(wù)部門和三菱電機(jī)的半導(dǎo)體業(yè)務(wù)部門等。這些收購(gòu)和整合不僅增強(qiáng)了ELANTEC的技術(shù)實(shí)力,還擴(kuò)大了其市場(chǎng)份額。
為了進(jìn)一步擴(kuò)大市場(chǎng)份額和提升技術(shù)實(shí)力,ELANTEC積極尋求收購(gòu)和整合的機(jī)會(huì)。2003年,ELANTEC成功收購(gòu)了美國(guó)半導(dǎo)體公司Intersil的移動(dòng)通信部門,獲得了先進(jìn)的移動(dòng)通信技術(shù)。隨后,ELANTEC又陸續(xù)收購(gòu)了多家半導(dǎo)體公司,包括NEC電子的半導(dǎo)體業(yè)務(wù)部門和三菱電機(jī)的半導(dǎo)體業(yè)務(wù)部門等。這些收購(gòu)和整合不僅增強(qiáng)了ELANTEC的技術(shù)實(shí)力,還擴(kuò)大了其市場(chǎng)份額。
品質(zhì)是企業(yè)的生命線。安碁科技自成立以來(lái),一直注重品質(zhì)管理和技術(shù)創(chuàng)新。2000年,公司引進(jìn)了全自動(dòng)化制程設(shè)備,正式生產(chǎn)SMD產(chǎn)品,并通過(guò)了ISO9002認(rèn)證。此后,安碁科技陸續(xù)通過(guò)了多項(xiàng)國(guó)際認(rèn)證,如TL-9000、TS16949等,證明了其在品質(zhì)管理方面的卓越表現(xiàn)。同時(shí),公司也不斷投入研發(fā)資源,推動(dòng)技術(shù)創(chuàng)新和產(chǎn)品升級(jí),以滿足市場(chǎng)不斷變化的需求。
為了進(jìn)一步拓展市場(chǎng)和提高競(jìng)爭(zhēng)力,電子智鏈開始尋求與其他企業(yè)建立生態(tài)合作關(guān)系。公司與多家電子制造設(shè)備供應(yīng)商、原材料供應(yīng)商和物流服務(wù)商建立了戰(zhàn)略合作關(guān)系,共同打造了一個(gè)覆蓋電子產(chǎn)業(yè)全鏈條的生態(tài)圈。這一合作模式不僅為客戶提供了更加全面和高效的解決方案,還促進(jìn)了整個(gè)電子產(chǎn)業(yè)的協(xié)同發(fā)展。
Everbuild深知人才是企業(yè)發(fā)展的核心。因此,公司注重人才培養(yǎng)和團(tuán)隊(duì)建設(shè)。公司建立了完善的培訓(xùn)體系,為員工提供各種技能培訓(xùn)和職業(yè)發(fā)展機(jī)會(huì)。同時(shí),Everbuild還鼓勵(lì)員工參與創(chuàng)新項(xiàng)目和技術(shù)研發(fā),激發(fā)員工的創(chuàng)造力和工作熱情。這些努力使Everbuild擁有一支高素質(zhì)、專業(yè)化的團(tuán)隊(duì),為公司的持續(xù)發(fā)展提供了強(qiáng)有力的保障。
Warning: Can\'t find signal in vector source file for input pin |whole|clk10m原因:因?yàn)槟愕牟ㄐ畏抡嫖募?vector source file )中并沒(méi)有把所有的輸入信號(hào)(input pin)加進(jìn)去,對(duì)于每一個(gè)輸入都需要有激勵(lì)源的… 查看全部問(wèn)答∨ |
|
WinCE5.0內(nèi)存映射文件操作的疑惑, 有這么一段程序: // 設(shè)定內(nèi)存映射大小、偏移量等參數(shù) __int64 qwFileSize = 0xD59F80;//文件的最大字節(jié)數(shù)13.3MB(0xD59F80)/64MB(0x4000000)/128MB(0x8000000) __int64 qwFileOffset = 0; & ...… 查看全部問(wèn)答∨ |
|
我不是計(jì)算機(jī)科班畢業(yè)。硬件知識(shí)一點(diǎn)不懂,不過(guò)軟件沒(méi)問(wèn)題(自學(xué)的)。現(xiàn)在在一家軟件公司作開發(fā),想學(xué)嵌入式。怎么入手,看什么書?先學(xué)什么?詳細(xì)點(diǎn)。給分了… 查看全部問(wèn)答∨ |
我在他的AD上外部接了干電池, 我把電壓調(diào)整到2.8V,采樣250次后 我看數(shù)據(jù), 發(fā)現(xiàn)數(shù)據(jù) 從3470----3420 的數(shù)據(jù)都有,真的叫人郁悶 請(qǐng)問(wèn)香主 他的誤差有那么大么.我把電路貼出來(lái), 不知道那位采的數(shù)據(jù)精確點(diǎn)啊… 查看全部問(wèn)答∨ |
這里基本上包括了網(wǎng)上所有有用的SVPWM資料,只要一鍵就可以得到所有的資料。看咱們論壇這方面的資料比較就上傳上來(lái)供大家學(xué)習(xí)! 具體內(nèi)容如下: 代碼如下: [ 本帖最后由 fxw451 于 2011-4-12 15:05 編輯 ]… 查看全部問(wèn)答∨ |
|
我使用ST提供stm32f105-07_f2xx_usbhost_lib.zip的USB庫(kù)在我的板子中進(jìn)行測(cè)試時(shí),板子作為從設(shè)備。用它提供的例程從設(shè)備作為HID設(shè)備時(shí),我不管如何插、拔USB時(shí),電腦都能識(shí)別設(shè)備。當(dāng)從使用VCP例程時(shí),使用JLink進(jìn)行仿真,點(diǎn)擊RUN時(shí),插入U(xiǎn)SB設(shè)備, ...… 查看全部問(wèn)答∨ |
2個(gè)FPGA例程,LED流水燈和4位計(jì)數(shù)器 例程已經(jīng)在板子上跑過(guò)了,附帶詳細(xì)解釋 syn_cnter_4.qpf4位計(jì)數(shù)器led_w.qpfLED流水燈,方向固定… 查看全部問(wèn)答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 英飛凌微控制器:以全新實(shí)惠套件和強(qiáng)大開發(fā)環(huán)境為開發(fā)者提供支持
- iTOP-i.MX6開發(fā)板設(shè)備數(shù)驅(qū)動(dòng)Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴(kuò)展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設(shè)置開機(jī)自啟動(dòng)
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測(cè)試
- 英特爾被曝向臺(tái)積電下達(dá) 2nm 晶圓代工訂單,成為該制程首批客戶
- Akamai 研究發(fā)現(xiàn):在亞太地區(qū)及日本,AI 驅(qū)動(dòng)的應(yīng)用程序遭受了 510 億次 Web 攻擊,年同比增長(zhǎng)達(dá) 73%
- 汽車顯示屏——第1部分:TFT LCD、OLED和micro-LED顯示屏基本原理
- 英特爾首秀上海車展:以“芯”賦能,攜手合作伙伴推動(dòng)全車智能化
- 中國(guó)首個(gè)高速L3商用解決方案!華為新一代ADS 4正式發(fā)布
- 增強(qiáng)自主移動(dòng)機(jī)器人的安全性
- Cadence 推出業(yè)界首款 12800MT/s DDR5 MRDIMM Gen2 內(nèi)存 IP 系統(tǒng)解決方案
- 消息稱英特爾本周內(nèi)公布 20%+ 大裁員計(jì)劃
- 盤點(diǎn)慕尼黑電子展上那些火熱的機(jī)器人技術(shù)和產(chǎn)品
- AI算力狂飆下的能源困局,ST如何突圍?
- 瑞薩電子RL78/G14 demo板低價(jià)開團(tuán) 19.9元包郵
- 停工停課不停學(xué)!羅姆R課堂正式上線
- 【搜集令】曬曬你收藏的經(jīng)典模擬電路!!!
- elexcon 2024 深圳國(guó)際電子展報(bào)名通道開啟!參與贏京東卡!
- 西門子電子書下載《PCB 制造流程 - 通過(guò)數(shù)字化轉(zhuǎn)型進(jìn)行優(yōu)化》
- 成都站報(bào)名 | Keysight 高速互聯(lián)技術(shù)研討會(huì)
- 美信基礎(chǔ)模擬IC APP下載 助力您創(chuàng)新模擬設(shè)計(jì)!評(píng)論、搶樓全有禮!
- 4月面板價(jià)格跌幅未收斂 美對(duì)中祭301恐成新變量
- 韓國(guó)OLED投資停滯 日本Canon Tokki蒸鍍機(jī)全數(shù)改銷中國(guó)大陸
- 2018年柔性AMOLED手機(jī)面板趨勢(shì)分析
- 河北四大行動(dòng)提升新型顯示產(chǎn)業(yè)競(jìng)爭(zhēng)力
- 外媒:蘋果為iPhone尋找新OLED屏幕供應(yīng)商遇阻
- 香港運(yùn)營(yíng)商明年4月率先提供5G服務(wù)
- 蘋果提交禁令復(fù)議:會(huì)被迫和高通和解
- "老賴"賈躍亭FF法拉第股份和美國(guó)豪宅被加州法院凍
- 蘋果宣稱禁售令可能損害中國(guó)的智能手機(jī)行業(yè)
- Keil調(diào)試程序如何查看變量