一、簡介
本文介紹STM32系列如何使用timer2進行精確定時。
二、實驗平臺
庫版本:STM32F10x_StdPeriph_Lib_V3.5.0
編譯軟件:MDK4.53
硬件平臺:STM32開發板(主芯片stm32f103c8t6)
仿真器:JLINK
三、版權聲明
四、實驗前提
1、在進行本文步驟前,請先閱讀以下博文:
暫無
2、在進行本文步驟前,請先實現以下博文:
暫無
五、基礎知識
暫無
六、實驗步驟
1、編寫并添加定時器2驅動
1)編寫驅動GUA_Timer2.c(存放在“……HARDWARE”)
//******************************************************************************
//name: GUA_Timer2.c
//introduce: 定時器2驅動
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
#include "stm32f10x.h"
#include "GUA_Timer2.h"
/*********************宏定義************************/
//時鐘宏
#define GUA_TIMER2_PERIPH_CLOCK RCC_APB1Periph_TIM2
/*********************內部變量************************/
static GUA_U64 sGUA_Timer2_TimingDelay_1 = 0;
static GUA_U64 sGUA_Timer2_TimingDelay_2 = 0;
//******************************************************************************
//name: GUA_Timer2_TimingDelay_Decrement
//introduce: 定時器2數值減1的處理操作
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_TimingDelay_Decrement(void)
{
//變量1做遞減
if(sGUA_Timer2_TimingDelay_1 != 0x00)
{
sGUA_Timer2_TimingDelay_1--;
}
//變量2做遞減
if(sGUA_Timer2_TimingDelay_2 != 0x00)
{
sGUA_Timer2_TimingDelay_2--;
}
}
//******************************************************************************
//name: GUA_Timer2_StartDelayMs_1
//introduce: 啟動延時
//parameter: nGUA_Timer2_Time:需要延時的ms數
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_StartDelayMs_1(GUA_U64 nGUA_Timer2_Time)
{
sGUA_Timer2_TimingDelay_1 = nGUA_Timer2_Time;
}
//******************************************************************************
//name: GUA_Timer2_CheckDelayMs_1
//introduce: 檢查延時
//parameter: none
//return: 剩余的延時ms數
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
GUA_U64 GUA_Timer2_CheckDelayMs_1(void)
{
return sGUA_Timer2_TimingDelay_1;
}
//******************************************************************************
//name: GUA_Timer2_StartDelayMs_2
//introduce: 啟動延時
//parameter: nGUA_Timer2_Time:需要延時的ms數
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_StartDelayMs_2(GUA_U64 nGUA_Timer2_Time)
{
sGUA_Timer2_TimingDelay_2 = nGUA_Timer2_Time;
}
//******************************************************************************
//name: GUA_Timer2_CheckDelayMs_2
//introduce: 檢查延時
//parameter: none
//return: 剩余的延時ms數
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
GUA_U64 GUA_Timer2_CheckDelayMs_2(void)
{
return sGUA_Timer2_TimingDelay_2;
}
//******************************************************************************
//name: GUA_Timer2_Init
//introduce: 定時器2初始化
//parameter: none
//return: none
//author: 甜甜的大香瓜
//email: 897503845@qq.com
//QQ group 香瓜單片機之STM8/STM32(164311667)
//changetime: 2017.01.15
//******************************************************************************
void GUA_Timer2_Init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
上一篇:STM32之霍爾傳感器模塊
下一篇:STM32之DRV8834電機驅動(PWM方式)
推薦閱讀
史海拾趣
CYANLITE公司成立于XXXX年,由一群富有創新精神的電子工程師創立。他們發現當時市場上對于高效能LED照明產品的需求日益增長,于是決定利用自己的技術背景,專注于研發和生產高品質的LED照明產品。起初,公司規模較小,資金有限,但他們憑借對技術的熱情和堅持不懈的努力,成功研發出了第一款具有競爭力的LED燈具,并逐漸在市場上獲得了認可。隨著產品的熱銷,CYANLITE公司逐漸擴大了生產規模,并增加了研發投入,以保持其在行業中的領先地位。
隨著業務規模的不斷擴大,Concord Semiconductor Corp開始將市場拓展作為重要的發展戰略。公司通過參加國際電子展會、舉辦技術研討會等方式,積極宣傳自己的產品和技術,提升品牌知名度。同時,公司還針對不同地區的市場需求,推出定制化產品和服務,進一步鞏固了市場地位。
隨著技術的不斷進步,AVAGO公司開始致力于研發更先進的半導體技術。其中,一次重大的技術突破發生在光纖通信領域。公司成功研發出了一種高性能的光纖收發器,這一創新不僅提高了數據傳輸的速度和穩定性,還極大地推動了光纖通信技術的發展。這一產品迅速在市場上獲得了廣泛應用,為AVAGO公司帶來了可觀的收益。
作為一家技術驅動型企業,西博臣始終將創新作為發展的核心動力。公司不斷投入資源進行新技術和新產品的研發,積極申請各類專利和知識產權,以保護自己的技術成果。這些專利和知識產權不僅提升了公司的技術實力,也為其在市場中樹立了良好的口碑。
隨著全球LED市場的日益成熟,競爭也日趨激烈。面對這一形勢,Cree通過收購和出售的方式,逐漸調整了其在LED市場的主要業務。這一戰略調整使得Cree能夠專注于更高端、更具技術含量的LED產品研發和生產,從而保持了其在行業內的領先地位。
我用FPGA控制網卡芯片做一個數據收發的東西,但是怎樣讓FPGA開始發送數據呢?具體就是, FPGA接收到命令就開始發數據,接收到數據就存儲,可是怎樣判斷接到的是命令還是數據呢?… 查看全部問答∨ |
1.長假,預祝大家雙節快樂 2.大家【曬電路】,才是真的【曬電路】,曬 完我就回家了 3.正題 在許多應用場合,需要隨時通過調整馬達的轉速實現調整風量、流量等目的。過去通常采用通過調整串入馬達的電感量來實現對馬達轉速的控制,這種方法存在 ...… 查看全部問答∨ |
WINCE5.0(操作系統已添加 MFC 組件) VS2005 MFC 動態鏈接 利用向導制作了一個最簡單的對話框程序,復制到開發板中運行,結果提示: 缺少庫,可是在操作系統中已經添加了 MFC 組件,難道 VS2005 MFC 程序需要自己的 MFC 庫嗎?… 查看全部問答∨ |
1.精通C++或C語言,能熟練使用EVC或VS2005等工具開發應用軟件. 2.有多媒體,GPRS網絡應用開發經驗者優先. 3.有游戲軟件編程經驗著優先. 4.熟悉windows ce 系統優先. 5.有較強的團隊合作精神,富有責任心. 6.待遇面議. 請把您的簡歷和作品發送到s ...… 查看全部問答∨ |
從DSP56F803BU80E 中讀取的程序,保存為BIN或S19格式,現在希望修改其中的一些字符型數據,但在Hex編輯器下找不到校驗位,修改后再寫入芯片就無法使用。懇請會該款DSP開發或能直接修改文件內容的高人出手相助,修改成功愿奉萬元酬勞。… 查看全部問答∨ |
|
懷著對ARM的好奇和學習的沖動參加了這個活動。只會一點點51的我顯然是低估了ARM的復雜程度。 因為沒有接觸過ARM,加上自己擅長的是結構設計。以為只有設計個外殼和內部結構還有面板就可以了。沒想到項目只是做個板子就結束了。并不是以搞個成型的 ...… 查看全部問答∨ |