1. 程式人生 > >STM32通用定時器的基本定時器功能實現燈閃爍

STM32通用定時器的基本定時器功能實現燈閃爍

/*MAIN.C*/

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include "misc.h"

/* Private function prototypes -----------------------------*/
void RCC_Configuration(void);
void NVIC_Configuration(void);
void GPIO_Configuration(void);
void TIM3_Configuration(void);

/* Private functions ------------------------------------------*/

/**
  * @brief  Main program
  * @param  None
  * @retval : None
  */

int main(void)
{
 RCC_Configuration();
 NVIC_Configuration();
 GPIO_Configuration();
 TIM3_Configuration();


 while (1) {
  ;
 }
}
/**
  * @brief  Configures TIM3
  * @param  None
  * @retval : None
  */

void TIM3_Configuration(void)
{

/*每1秒發生一次更新事件(進入中斷服務程式)。RCC_Configuration()的SystemInit()的RCC->CFGR |= (uint32_t)RCC_CFGR_PPRE1_DIV2表明TIM3CLK為72MHz。因此,每次進入中斷服務程式間隔時間為((1+TIM_Prescaler )/72M)*(1+TIM_Period )=((1+7199)/72M)*(1+9999)=1秒 */


 TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 TIM_TimeBaseStructure.TIM_Period = 7199; 
 TIM_TimeBaseStructure.TIM_Prescaler = 9999;
 TIM_TimeBaseStructure.TIM_ClockDivision = 0;
 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);/*此函式的語句"TIMx->EGR = TIM_PSCReloadMode_Immediate;"以軟體方式產生更新事件(注:當發生一個更新事件時,所有的暫存器都被更新,硬體同時(依據URS位)設定更新標誌位

(TIMx_SR暫存器中的UIF位)。)。*/

TIM_ClearFlag(TIM3, TIM_FLAG_Update);/*清除更新標誌位*/
 TIM_ARRPreloadConfig(TIM3, DISABLE);/*預裝載暫存器的內容被立即傳送到影子暫存器 */

 TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);    
 TIM_Cmd(TIM3, ENABLE);

}
/**
  * @brief  Configures the different system clocks.
  * @param  None
  * @retval : None
  */

void RCC_Configuration(void)
{
 SystemInit();
  
 /* TIM3 clock enable */
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
 
 /* GPIOC clock enable */
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

}
/**
  * @brief  Configures NVIC.
  * @param  None
  * @retval : None
*/

void NVIC_Configuration(void)
{
 NVIC_InitTypeDef NVIC_InitStructure;
 
 /* Enable the TIM3 gloabal Interrupt*/
 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;  
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure);
}
/**
  * @brief  Configure the TIM3 Ouput Channels.
  * @param  None
  * @retval : None
  */
void GPIO_Configuration(void)
{
 GPIO_InitTypeDef GPIO_InitStructure;
 
 GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_7;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_Init(GPIOC, &GPIO_InitStructure);

/*注:不用為實現通用定時器的基本定時器功能配置Pin*/
}

/*stm32f10x_it.c*/

/* Includes -------------------------------------------------*/

#include "stm32f10x_it.h"

 void TIM3_IRQHandler(void)
{
 if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) {
  /* Clear TIM3 update interrupt */
  TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
  GPIO_WriteBit(GPIOC, GPIO_Pin_7, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_7)));
 }
}

/*注:stm32f10x_stdperiph_lib_v3.0.0  編譯器:MDK3.24A*/

/*軟體模擬:首次進入中斷Sec為1.00016507,第二次進入中斷Sec為2.00016507,因此2.00016507-1.00016507=1*/

/*

*/

相關推薦

STM32通用定時基本定時功能實現閃爍

/*MAIN.C*/ /* Includes ------------------------------------------------------------------*/#inclu

STM32-通用定時基本定時功能

數字 vision 實現 定義 還要 可能 輸出 給定 禁止 1. STM32的Timer簡介 STM32中一共有11個定時器,其中2個高級控制定時器,4個普通定時器和2個基本定時器,以及2個看門狗定時器和1個系統嘀嗒定時器。其中系統嘀嗒定時器是前文中所描述的Sys

jQuery選擇基本選擇

jQuery選擇器基本選擇器form input:查詢form下所有input元素,含有後代關系form>input:查詢form下所有input元素,有有父子關系,沒有後代關系form+input:查詢與form同級的第一個input元素,是兄弟關系form~input:查詢與form同級的所有inp

JQuery選擇----基本選擇

基本選擇器:            - ID選擇器 :     #ID的名稱             - 類選擇器: &nbs

css3選擇--基本選擇,層次選擇,屬性選擇

        對HTML頁面中的元素使用CSS實現一對一,一對多或者多對一的控制,要用到CSS選擇器。在大篇CSS程式碼中,並沒有說明什麼樣式服務於什麼元素,只是在元素中使用了class屬性。而cl

CSS3 選擇——基本選擇

CSS的選擇器,我想大家並不會陌生吧,因為天天在使用,但對於CSS3的選擇器,要運用的靈活到位,我想對很多朋友還是一定的難度,特別是CSS3中的:nth選擇器。那麼從現在開始我們先丟開他們版本的區別,從頭一起來看看CSS選擇器的運用。 CSS是一種用於螢幕上渲染html,x

一步一步學習 JQuery (二) 選擇: 基本選擇 && 層次選擇

選擇器是 jQuery 的根基, 在 jQuery 中, 對事件處理, 遍歷 DOM 和 Ajax 操作都依賴於選擇器 jQuery 選擇器的優點:簡潔的寫法                     完善的事件處理機制 一、基本選擇器 基本選擇器是 jQuery 中最常

KindEditor富文本框編輯上傳圖片功能實現,基於java項目

ger char 大小 append 參考 java ont area reat 1. HTML標簽與jquery代碼 <textarea id="editor_id" style="width: 200px; height: 200px;"></text

前端 CSS的選擇 基本選擇

pre inf sca mil logs blog port 就是 分享 基本選擇器包括: 標簽選擇器 類選擇器 ID選擇器 通用選擇器 標簽選擇器 就是通過標簽名來選擇元素: 選中p標簽 <!DOCTYPE html&g

前端 CSS的選擇 基本選擇 類選擇

code content 基本 公有 開頭 ext utf-8 span 公共類 類選擇器 符號是.開頭 然後類的名字 樣式類名不要用數字開頭(有的瀏覽器不認)。 所謂類就是class,.class與id非常相似,任何標簽都可以加類,但是類可以重復

fairyGUI介面控制元件的基本製作和功能實現

fairyGUI介面控制元件的基本製作和功能實現 一般按鈕有4個態:(點開按鈕模組可檢視)up/down/over/selectedOver 按鈕的示例程式碼 private GButtonbtn_helmet; btn_helmet = this.ui.GetCh

C#軟體開發例項.私人訂製自己的螢幕截圖工具(四)基本截圖功能實現

本例項全部文章目錄實現原理基本截圖的功能主要靠響應主窗體的滑鼠按下、滑鼠移動、滑鼠擡起幾個事件的功能來實現的。擷取的圖片區域使用“Label”元件來顯示,需要重新實現“Label”元件的“Paint”方法。左鍵單擊開始截圖,右鍵單擊取消截圖,雙擊滑鼠左鍵完成截圖,將擷取的圖片

STM32專案筆記】STM32CubeMX+Keil+Proteus聯合實現LED閃爍

摘要 利用STM32CubeMx配置STM32晶片的功能,然後將配置後的內容生成程式碼,並匯出成可以使用Keil開啟編輯的檔案,在Keil中新增控制程式碼後,下載到Proteus模擬中,使用模擬觀察程式碼執行結果。     所需軟體 1) STM32CubeMx 下載地址:https:

STM32 通用定時的輸出PWM功能 學習筆記

首先來說,你要使用PWM模式你得先選擇用哪個定時器來輸出PWM吧!除了TIM6、TIM7這兩個普通的定時器無法輸出PWM外,其餘的定時器都可以輸出PWM,每個通用定時器可以輸出4路PWM,高階定時器TIM1、TIM8每個可輸出7路PWM。選好定時器及通道後,下一步就是要使能

STM32學習筆記:通用定時基本設定

STM32 包含11個定時器,其中TIM2~TIM5為通用定時器。 通用定時器掛載在低速外設匯流排APB1上,其時鐘來源於輸入為APB1的一個倍頻器,只要APB1的時鐘分頻數不為1,TIMx的時鐘頻率就會為APB1時鐘頻率的2倍,即72MHz 。 配置通用定時器需要4步(

STM32 ——高階定時通用定時基本定時的區別

STM32 ——高階定時器、通用定時器、基本定時器的區別 TIM1和TIM8定時器的功能包括【增強型】: ● 16位向上、向下、向上/下自動裝載計數器 ● 16位可程式設計(可以實時修改)預分頻器,計數器時鐘頻率的分頻係數為1~65535之間的任意數值 ● 多達4個獨

STM32 通用定時定時功能 學習筆記

這節主要講下STM32 通用定時器的定時功能。 一、TIMx的時鐘源問題: STM32有8路暫存器,包括TIM1和TIM8兩個高階定時器,TIM6和TIM7兩個基本定時器,TIM2-TIM5四個通用定時器,定時器是完全獨立的,而且沒有互相共享任何資源,它們可以一起同步操作,

stm32-TIM之基本定時

clas font 高級 中斷處理函數 eba conf lag 向上 ext TIM:   STM32F1 系列中,除了互聯型的產品,共有8 個定時器,分為基本定時器,通用定時器和高級定時器。基本定時器TIM6 和TIM7 是一個16 位的只能向上計數的定時器,只能定時,

STM32通用定時配置

STM32通用定時器配置 一、STM32通用定時器原理                   

STM32學習---基本定時(定時中斷)

//STM32定時器實驗: /* STM32一共有8個都為16位的定時器。 其中: TIM6,TIM7是基本定時器; TIM2,TIM3,TIM4,TIM5是通用定時器; TIM1 和 TIM8 是高階定時器。 這是定時器的綜合運用使STM32具有定時、訊號的頻率測量、訊號的PWM測量、PWM輸