/*定時器1ms中斷,死等定時器延時*/
/*File Timer.c */
#include "stm32f10x.h"
unsigned int TimeDelay = 0;
void TIM1_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_DeInit(TIM1); /*復位TIM1定時器*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); /*開時鐘*/
TIM_TimeBaseStructure.TIM_Period = 100; /*時鐘滴答的次數,夠數中斷這里是1ms中斷一次*/
TIM_TimeBaseStructure.TIM_Prescaler = 720-1; /* 分頻720*/
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /*計數方向向上計數*/
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
/* Clear TIM1 update pending flag 清除TIM1溢出中斷標志] */
TIM_ClearFlag(TIM1, TIM_FLAG_Update);
NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn; /*溢出中斷*/
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 4;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE); /* Enable TIM1 Update interrupt TIM1溢出中斷允許*/
}
void Timer1Config(void)
{
TIM1_Configuration();
}
void TimeDelayMs(unsigned int Num)
{
TimeDelay = Num;
TIM1->CNT = 0;
TIM1->CR1 |= TIM_CR1_CEN; /*開啟Timer1計數*/
while(TimeDelay);
TIM1->CR1 &= (uint16_t)(~((uint16_t)TIM_CR1_CEN)); /*關閉Timer1*/
}
/*File stm32f10x_it.c */
/*添加中斷處理函數*/
void TIM1_UP_IRQHandler(void)
{
gUINT32 CPUStatus;
G_ENTER_CRITICAL();
TIM_ClearFlag(TIM1, TIM_FLAG_Update);
if(TimeDelay > 0)
{
TimeDelay--;
}
G_EXIT_CRITICAL();
}
/*File startup_stm32f10x_hd.s*/
/*添加中斷入口*/
TIM1_UP_IRQHandler PROC
EXPORT TIM1_UP_IRQHandler [WEAK]
B .
ENDP
;//去掉下面代碼;
EXPORT TIM1_UP_IRQHandler [WEAK]
;//也去掉這個;
TIM1_UP_IRQHandler
/*File Main.c*/
void main()
{
Timer1Config();
for(;;)
{
// G_DEBUGF(G_DEBUG_ALWAYS,("LED_ON\r\n"));
GPIO_ResetBits(GPIOB,GPIO_Pin_4);
TimeDelayMs(1000);
// G_DEBUGF(G_DEBUG_ALWAYS,("LED_OFF\r\n"));
GPIO_SetBits(GPIOB,GPIO_Pin_4);
TimeDelayMs(1000);
}
}
上一篇:STM32F207 TIM1 比較輸出 輸出多路不同頻率
下一篇:【STM32F103攻城筆記】輸入捕捉實戰
推薦閱讀
史海拾趣
隨著公司業務的不斷發展壯大,DB Unlimited開始將目光投向全球市場。公司積極開拓海外市場,通過參加國際展會、與海外客戶建立合作關系等方式,成功將產品推向了全球各地。同時,公司還根據不同國家和地區的市場需求和文化差異,對產品進行本地化改造和優化,進一步提高了產品的市場適應性和競爭力。
Corex Intervest Inc公司的創立,標志著電子行業中一顆新星的誕生。公司創始人憑借對電子技術的深刻理解和市場需求的敏銳洞察,決定投身于電子產品的研發和生產。在創立初期,公司面臨著資金短缺、技術難題和市場競爭等多重挑戰。然而,創始人憑借堅定的信念和不懈的努力,帶領團隊攻克了一個又一個難關,逐步在市場中站穩了腳跟。
1994年,Alpha Semiconductor迎來了另一個重要的里程碑——公司成功研發出了自己的電源管理產品。這一產品的推出標志著Alpha Semiconductor在半導體技術領域的自主創新能力得到了顯著提升。電源管理產品的成功研發不僅為公司帶來了可觀的收益,也進一步鞏固了Alpha Semiconductor在半導體行業中的地位。
飛虹光電科技集團在轉型過程中,相繼成立了多家高科技企業,如山西飛虹微納米光電科技有限公司、山西飛虹半導體照明有限公司等。這些企業之間形成了良好的協同發展機制,共同推進半導體激光器和LED材料的研發與應用。通過產學研一體化模式,飛虹系列企業依托多所高等院校技術平臺,不斷提升自身研發實力和市場競爭力,為中國電子行業的發展貢獻了重要力量。
Elcoma公司一直將產品質量視為企業的生命線。他們建立了嚴格的質量管理體系,從原材料采購到產品生產的每一個環節都進行嚴格的質量控制。同時,Elcoma還注重客戶反饋,不斷改進產品和服務,以滿足客戶的需求和期望。這種對品質的執著追求贏得了客戶的信任和好評,使Elcoma在競爭激烈的電子市場中脫穎而出。
隨著科技的進步,ATM也在不斷進行技術創新和升級。從最初的簡單取款功能,到現在的存款、轉賬、查詢等多種功能,ATM的功能日益豐富。同時,隨著移動支付和互聯網金融的興起,ATM也在逐漸與這些新技術融合,提供更加便捷、安全的金融服務。
//////////紅外接收子程序//////////void service_int2() interrupt 2 using 2{ //EA=0; uchar i,j,n=0; uchar a[4]; if (IRIN==1) { return; } for (;n ...… 查看全部問答∨ |
wince改rom-only文件系統,結果發現explorer.exe起不來 wince改rom-only文件系統,結果發現explorer.exe起不來,其他正常。希望大家指導下。謝謝… 查看全部問答∨ |
關于ConnMgrEnumDestinations枚舉可用網絡 HRESULT WINAPI ConnMgrEnumDestinations( int Index, CONNMGR_DESTINATION_INFO *pDestInfo ); 既然是枚舉可用網絡,就可能返回多個值吧,這多個值是如何返回的?pDestInfo指向鏈表嗎?msdn上沒有提到 我想調用Conn ...… 查看全部問答∨ |
|
在這里創建這個帖子的目的是提高大家學習UCOS的積極性。如果大家在學習過程中遇到任何問題都可以在這里提問。壇子里的這方面高手希望大家經常來這里看一下,幫助大家解決問題。… 查看全部問答∨ |
|
請問如何讓八個燈一秒閃一次呢?閃爍形式沒有要求,八個燈是依次接到PD0~PD7上的,我剛剛接觸ATmega16,懂得的只是少的可憐,希望大家幫幫我,鞠躬ing……… 查看全部問答∨ |