STM32F1筆記(九)通用定時器

STM32F1的定時器分為TIME1/8等高級定時器,TIME2~5等通用定時器,TIME6/7基本定時器。三者的區別主要參考《STM32中文參考手冊》里特性的每種定時器主要特性的異同。

先看中文手冊中通用定時器的簡介:

通用定時器的寄存器有一個比較有趣的地方。

該寄存器在物理上實際對應著2個寄存器。

一個是程序員可以直接操作的,另外一個是程序員看不到的。

看不到的寄存器叫做影子寄存器,事實上真正起作用的是影子寄存器。

根據TIMx_CR1寄存器中APRE位的設置:APRE=0時,預裝載寄存器的內容可以隨時傳送到影子寄存器,此時2者是連通的;而APRE=1時,在每一次更新事件(UEV)時,才把預裝在寄存器的內容傳送到影子寄存器。

通用定時器配置示例:

void TIM3_Init(u16 period, u16 prescaler)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);TIM_TimeBaseStructure.TIM_Period = period;	TIM_TimeBaseStructure.TIM_Prescaler = prescaler;TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);TIM_ITConfig(TIM3,TIM_IT_Update, ENABLE);NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM3, ENABLE);		 
}
TIM3_Int_Init(9,7199);//1ms

定時器時間計算:T = ( (1 + period) * (1 + prescaler) ) / 72000000 = ((1+ 9)*(1 + 7199))/72000000= 0.001s = 1ms

定時器中斷服務函數示例:

void TIM3_IRQHandler(void)
{if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET){TIM_ClearITPendingBit(TIM3, TIM_IT_Update);}
}

因為配置中是向上計數,所以中斷內是判斷向上計數中斷是否發生。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374387.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374387.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374387.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

佳能MP258的5200錯誤和P08代碼解決方法及清零方法

參考文章轉載于:https://www.cnblogs.com/arcer/p/5659624.html

tomcat通過conf-Catalina-localhost目錄發布項目詳解

轉自:http://www.cnblogs.com/iyangyuan/p/3316444.html,感謝 楊元。 Tomcat發布項目的方式大致有三種,但小菜認為通過在tomcat的conf/Catalina/localhost目錄下添加配置文件,來發布項目,是最佳選擇。 因為這樣對tomca…

c++保存圖標到dll_自動保存郵件附件至指定文件夾

最近有個需求,ERP系統會自動發很多csv附件到我郵箱,我需要把這些附件上傳到FTP服務器,服務器會把這些csv的數據寫到另外一個系統的數據庫。每次大概有30個郵件,每個郵件有一個附件,而且附件的名字都一樣,是…

有時在Java中,一個布局管理器是不夠的

在開發Java Swing應用程序時,最經常的是,我們需要在多個嵌套面板中使用多個布局管理器。 通常這不是問題,并且被認為是幾乎所有人類已知語言的所有UI開發的常規做法。 但是,大多數情況下,對于UI中的每個面板&#xff0…

VM克隆之后啟動eth0找不到eth0:unknown interface:no such device

問題出現:VMware 克隆之后,ifconfig命令執行找不到eth0,報錯 eth0:unknown interface:no such device 是因為/etc/sysconf/network-scripts/ifcfg-eth0配置復制過來和虛擬主機的網卡Mac等信息不匹配 解決方法; 刪除/etc/udev/rules.d/70-pers…

“精彩極了”和“糟糕透了”

雖然已經是25歲,但是對小學的一篇課文依然記憶尤新,《“精彩極了”和“糟糕透了”》。 課文正文 記得七八歲的時候,我寫了第一首詩。母親一念完那首詩,眼睛亮亮的,興奮地嚷著:“巴迪,真是你寫的…

python中print的用法_Python中print函數簡單使用總結

Python中print函數簡單使用總結 print函數是Python的入門,每一個學習python的人都繞不開這個函數,下面介紹一下這個函數的用法。 打開電腦,選擇python軟件,下面選擇python 3.7為例進行介紹,點擊python 3.7,…

STM32F1筆記(十)PWM

PWM:Pulse Width Modulation,脈沖寬度調制。是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。簡單來說就是對脈沖寬度的控制。 在《STM32中文參考手冊》里可以看到 占空比:占空比是指在一個脈沖循環內,通電時…

從GlassFish 3.x擴展到WebLogic 12c Server

Oracle針對GlassFish服務器的策略的主要目標之一是“與Fusion Middleware and Products集成”(來源: Community Roadmap,2010年5月 )。 在今年早些時候,您聽到了很多關于兩臺服務器合而為一的恐懼和謠言。 看到這兩種產…

移動互聯網時代:如何讓女孩愛上你在一分鐘內?

部分《移動互聯網時代:讓女孩愛上你在一分鐘內》其實我只是做原來的盲目思想有移動互聯網的自主知識產權,他沒有詳細說明如何真正讓女孩愛上你在一分鐘內?在真實生活中,預期也沒有那么簡單,易于,畢竟&#…

hashset去重原理_基于simhash的文本去重原理

互聯網網頁存在著大量重復內容,必須有一套高效的去重算法,否則爬蟲將做非常多的無用功,工作時效性無法得到保證,更重要的是用戶體驗也不好。業界關于文本指紋去重的算法眾多,如 k-shingle 算法、google 提出的simhash …

解決express video 手機無法播放的問題

http://stackoverflow.com/questions/24976123/streaming-a-video-file-to-an-html5-video-player-with-node-js-so-that-the-video-c 項目地址 https://github.com/shenggen1987/mp4-demo express index.jade extends layoutblock contenth1 titlep Welcome to #{title}vid…

STM32F1筆記(十一)ADC

查看《STM32中文參考手冊》里ADC的介紹和特性 STM32的ADC最大轉換速率為1Mhz,即1us,在ADCCLK14M,采樣周期為1.5個ADC時鐘下得到。當ADC的時鐘超過14M時,將導致結果準確度下降。 規則通道相當于正常運行的程序。注入通道就相當于中…

使用JPA和Spring 3.1進行事務配置

1.概述 本教程將討論配置Spring Transactions ,使用Transactional批注和常見陷阱的正確方法 。 要更深入地討論核心持久性配置,請查看Spring with JPA教程 。 有兩種不同的配置事務的方法– 批注和AOP –每種都有自己的優勢–我們將在這里討論更常見的…

java epoll select_字節跳動高頻面試題,操作系統/算法/Java等。

字節跳動# Java▲ 20 Java 中垃圾回收機制中如何判斷對象需要回收?常見的 GC 回收算法有哪些?▲ 18 synchronized 關鍵字底層是如何實現的?它與 Lock 相比優缺點分別是什么?▲ 17 hashmap 和 hashtable 的區別是什么?▲…

Xamarin Android項目運行失敗

Xamarin Android項目運行失敗 錯誤信息:Build Failed: MonoDroid does not support running the previous version. Please ensure your solution builds before running or debugging it.這是由于由于項目生成失敗,并找不到以前編譯的結果。這時&#…

STM32F1筆記(十二)DAC

先看《STM32中文參考手冊》中DAC的介紹 引腳的定義與ADC類似 這里需要留意手冊提供的注意,DAC應該是輸出,但是GPIO初始化配置時卻要設置為模擬輸入。 DAC配置示例 void DAC_Init(void) {GPIO_InitTypeDef GPIO_InitStructure;DAC_InitTypeDef DAC_Init…

有關為舊版代碼創建存根的更多信息–測試技術7

在上一個博客中 ,我談到了如何處理行為不佳的不可測試的 (1) SitePropertiesManager 類,以及如何通過提取接口來創建存根。 但是,如果由于舊類的源代碼已被鎖定在第三方JAR文件中而無法訪問它,會發生什么情…

python動態時鐘代碼_python繪制動態時鐘

桌面時鐘項目描述 1、使用turtle庫繪制時鐘外形及表針; 2、使用datetime獲取系統時間; 3、時鐘動態顯示 turtle庫基本命令 1、turtle.setup()函數:用于啟動一個圖形窗口,它有四個參數turtle.setup(width, height, startx, starty)…

Ajax 學習 - 基礎學習

《AJax - Async Javascript and xml - 異步的JavaScript和XML》 一、基礎認識 AJax技術的目的:實現頁面無刷新數據動態更改 優點: 不需要插件支持 提供WEB程序的功能 優秀的用戶體驗 減輕服務器帶寬的負擔 缺點: 破壞瀏覽器的前進與后退 搜索引擎…