一、簡介
本文以STM8S103F3P6編程為例,介紹STM8S103F3P6定時器2捕獲周期
二、實驗平臺
電腦平臺:Windows7 64位旗艦
編譯軟件:IAR
硬件平臺:STM8S103F3P6
三、版權聲明
四、實驗前提
1、在進行本文步驟前,請先安裝IAR EWSTM8-EV-1311版本;準備好STM8S103F3P6硬件平臺。
五、基礎知識
暫無
六、源碼地址
七、關聯文章
鏈接:http://blog.csdn.net/qq_18842031/article/details/74937222
鏈接:http://blog.csdn.net/qq_18842031/article/details/77104097
八、實驗內容
1.系統時鐘初始化為內部16M
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //時鐘 初始化時鐘為1分頻 16M 2分頻8M
2.初始化定時器2設置PD3為捕獲輸入
void Init_Timer2(void)
{
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);//輸入 無中斷
TIM2_DeInit();
TIM2_TimeBaseInit(TIM2_PRESCALER_16, 10000-1); //16分頻, 1MHZ 10000 = 10ms 溢出
TIM2_ICInit(TIM2_CHANNEL_2, TIM2_ICPOLARITY_RISING, TIM2_ICSELECTION_DIRECTTI, TIM2_ICPSC_DIV1, 0x00); //設置通道 設置輸入捕獲上升觸發 捕獲輸入引腳 輸入捕捉預定標器 濾波
TIM2_ClearFlag(TIM2_FLAG_CC2); //指定要清除的標志
TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE); //使能向上計數功能
TIM2_ITConfig(TIM2_IT_CC2, ENABLE); //使能輸入捕獲通道2
TIM2_Cmd(ENABLE);
}
3.編寫主函數
void main(void)
{
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //內部時鐘16M
Init_UART1();
Init_Timer2();
enableInterrupts();
while(1);
}
4、編寫中斷服務函數
uint8_t fet;
INTERRUPT_HANDLER(TIM2_UPD_OVF_BRK_IRQHandler, 13)
{
fet++;
TIM2_ClearITPendingBit(TIM2_IT_UPDATE);
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
}
/**
* @brief Timer2 Capture/Compare Interrupt routine.
* @param None
* @retval None
*/
INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14)
{
if(TIM2_GetITStatus(TIM2_IT_CC2) != RESET) //如果CH2邊沿觸發
{
static uint8_t buf[12];
static uint16_t set_num1,set_num2;
static uint8_t timer1,timer2;
static uint8_t num;
uint8_t len = 0;
uint16_t fre = 0;
num++;
if(num == 1)
{
set_num1 = TIM2_GetCapture2();
timer1 = fet;
}
else if(num == 2)
{
num = 0;
set_num2 = TIM2_GetCapture2();
timer2 = fet;
fet = 0;
fre = 1000000 / ((timer2*10000+set_num2) - (timer1*10000+set_num1));
buf[len++]=fre/10000%10+'0';
buf[len++]=fre/1000%10+'0';
buf[len++]=fre/100%10+'0';
buf[len++]=fre/10%10+'0';
buf[len++]=fre%10+'0';
buf[len++]= 'n';
UART1_Send(buf,6);
}
}
TIM2_ClearITPendingBit(TIM2_IT_CC2);
}
5、結果
輸出100Hz,實驗成功。
上一篇:STM8無法跳出TIM2更新中斷
下一篇:STM8的TIM4定時器1ms進入中斷
推薦閱讀
史海拾趣
面對數字化轉型的浪潮,DLG Hanbit公司積極擁抱變革。公司加大了對云計算、大數據、人工智能等技術的研發投入,推出了一系列智能電子產品和解決方案。同時,公司還加強了與互聯網企業、電信運營商等合作伙伴的合作,共同打造智能生態圈。未來,DLG Hanbit公司將繼續秉承創新、品質、環保的理念,致力于成為全球領先的半導體設計和制造企業。
為了進一步拓展市場,DIOO公司決定實施國際化戰略。在21世紀初,DIOO公司成功打入歐洲和北美市場,與當地知名電子產品制造商建立了合作關系。通過引進國際先進的生產技術和設計理念,DIOO公司的產品逐漸贏得了全球消費者的認可和喜愛。同時,DIOO公司還積極參加國際電子展會和論壇,與全球業界同仁交流學習,不斷提升自身的競爭力和影響力。
在HTC的發展歷程中,與微軟的合作無疑是重要的一環。早在2002年,微軟聯合HTC推出了全球第一臺搭載Windows mobile的Pocket PC,這一操作系統成為了日后WP 8的前身。得益于微軟的信任和支持,HTC能夠率先搭載最新的Windows mobile系統,從而成為Windows手機的頂級生產商。這種緊密的合作關系不僅提升了HTC的品牌影響力,還為其帶來了大量的市場份額和利潤。
在電子行業的激烈競爭中,GREEGOO公司憑借其在半導體材料領域的持續創新,成功研發出了一種新型高性能芯片封裝材料。這種材料不僅大幅提升了芯片的散熱性能和穩定性,還顯著降低了生產成本。這一技術突破迅速吸引了業界的關注,多家知名電子產品制造商紛紛與GREEGOO建立合作關系,推動了公司業務的快速增長。GREEGOO因此在電子材料市場上嶄露頭角,成為行業內的佼佼者。
GREEGOO公司深知品牌建設對于企業發展的重要性。因此,公司投入大量資源用于品牌宣傳和推廣,通過贊助行業活動、舉辦產品發布會、開展公益活動等方式,不斷提升品牌知名度和美譽度。同時,GREEGOO還注重產品質量的提升和售后服務的完善,以優質的產品和服務贏得消費者的信任和忠誠。這些努力使得GREEGOO在電子行業中樹立了良好的品牌形象,品牌價值不斷提升。
新型的大功率4148採用性價比最好的厚膜塗裝方式產製出平板式貼片CHIP DIODE開關二極管,簡稱CD4148,此外也有 穩壓 肖特基 SCHOTTKY 都可以通過SGS與無鉛260度C 10SEC 高溫回流焊錫 使用日本羅姆公司專用芯片封裝成1206 /0805,的可以耐住500 ...… 查看全部問答∨ |
程序如下:KEIL調試沒錯,不過仿真有問題!大家能不能幫我修改一下! #include #define keyR P0 #define keyC P0 sbit DE=P3^4; //sbit RD=P3^7; //sbit WR=P3^6; sbit A13=P2^5; sbit A14=P2^6; sbit A15=P2^7; sbit P00=P0^0; sbit P0 ...… 查看全部問答∨ |
我現在需要把一個DAC輸出的電壓,在0~3V范圍內,需要提高到0~4V就可以了,使用5V電源,其他方面沒有特殊的要求,轉換的電壓是用來調節3525的。我自己先用OP27弄了一下,但是不知道輸出電壓總是高于2V,下不去!哪位給我推薦個合適的芯片?謝謝!… 查看全部問答∨ |
LPC1343中文數據手冊---中文翻譯,4.30更新,基礎部分翻譯完畢 呵呵,我還是喜歡看中文數據手冊。 無奈老外們對中國市場不大重視,根本不提供中文手冊。(迄今只看到AVR單片機有官方提供的中文數據手冊,贊一個)。 相信大家伙跟我一樣,也有很多人喜歡看中文數據手冊。 既然沒有現成的,只 ...… 查看全部問答∨ |
taskspawn 分配一個任務時,參數中有優先級,堆棧大小,我要怎么來寫啊?剛剛搞這個東西。 taskspawn 分配一個任務時,參數中有優先級,堆棧大小,我要怎么來寫啊?剛剛搞這個東西。 我看例子中優先級大都是90,我要是創建多個任務時,都寫90行嗎? 還有堆棧大小我要根據什么來設置啊? 謝謝了… 查看全部問答∨ |
|
求助 幫看下信號采集程序可以不,其中有信號處理程序單獨仿真過是對的 采集部分的思路是對信號源采集16個信號后再進行處理 #include<reg51.h>#include <stdio.h>#include <absacc.h>#include <math.h>#define PI 3.1415926;#define uchar unsigned charuchar ar[16];uchar u=0;uchar ...… 查看全部問答∨ |
|
手頭上有個XDS100V2,14PIN JTAG接口,想用來仿真LM3S6911, 昨天出現問題,沒能正確連接上,今天又重新弄了一次,自己有塊F28035的板子,發現它的JTAG接口和我的M3板子上的JTAG接口差不多。所以我就把F28035板子上的TCK,TDI,TMS,TDO這四根線分別對 ...… 查看全部問答∨ |