CH32F103C8T6為什么通用定時(shí)器開(kāi)不出來(lái)

只有定時(shí)器1的示例,我按照定時(shí)器1的示例配置定時(shí)器2,就直接死機(jī)了

以下為定時(shí)器1和定時(shí)器2的配置:

void TIM1_Int_Init(u16 arr,u16 psc)

{

TIM_TimeBaseInitTypeDef? TIM_TimeBaseStructure;

NVIC_InitTypeDef? ? ? ? ?NVIC_InitStructure;


RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);? ? ? ?//使能TIM1時(shí)鐘


TIM_TimeBaseStructure.TIM_Period = arr;? ? ? ? ? ? ? ? ? ? //指定下次更新事件時(shí)要加載到活動(dòng)自動(dòng)重新加載寄存器中的周期值。

TIM_TimeBaseStructure.TIM_Prescaler =psc;? ? ? ? ? ? ? ? ? //指定用于劃分TIM時(shí)鐘的預(yù)分頻器值。

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;? ? //時(shí)鐘分頻因子

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//TIM計(jì)數(shù)模式,向上計(jì)數(shù)模式

TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);? ? ? ? ? ? //根據(jù)指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位


//初始化TIM NVIC,設(shè)置中斷優(yōu)先級(jí)分組

NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_IRQn;? ? ? ? ?//TIM1中斷

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;? //設(shè)置搶占優(yōu)先級(jí)0

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;? ? ? ? ?//設(shè)置響應(yīng)優(yōu)先級(jí)3

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;? ? ? ? ? ? //使能通道1中斷

NVIC_Init(&NVIC_InitStructure);? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化NVIC

TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE ); //使能TIM1中斷,允許更新中斷


TIM_Cmd(TIM1, ENABLE); //TIM1使能

}



void TIM2_Int_Init(u16 arr,u16 psc)

{

TIM_TimeBaseInitTypeDef? TIM_TimeBaseStructure;

NVIC_InitTypeDef? ? ? ? ?NVIC_InitStructure;


RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);? ? ? ?//使能TIM2時(shí)鐘


TIM_TimeBaseStructure.TIM_Period = arr;? ? ? ? ? ? ? ? ? ? //指定下次更新事件時(shí)要加載到活動(dòng)自動(dòng)重新加載寄存器中的周期值。

TIM_TimeBaseStructure.TIM_Prescaler =psc;? ? ? ? ? ? ? ? ? //指定用于劃分TIM時(shí)鐘的預(yù)分頻器值。

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;? ? //時(shí)鐘分頻因子

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//TIM計(jì)數(shù)模式,向上計(jì)數(shù)模式

TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);? ? ? ? ? ? //根據(jù)指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位

TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE ); //使能TIM2中斷,允許更新中斷


//初始化TIM NVIC,設(shè)置中斷優(yōu)先級(jí)分組

NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;? ? ? ? ?//TIM2中斷

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;? //設(shè)置搶占優(yōu)先級(jí)0

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;? ? ? ? ?//設(shè)置響應(yīng)優(yōu)先級(jí)3

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;? ? ? ? ? ? //使能通道1中斷

NVIC_Init(&NVIC_InitStructure);? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化NVIC

TIM_Cmd(TIM2, ENABLE); //TIM2使能

}


您好,附件為定時(shí)器1、2的中斷例程,可參考一下,測(cè)試沒(méi)問(wèn)題。

icon_rar.gifCH32F103 定時(shí)器1、2中斷.zip

image.png


好的,感謝


你好,你發(fā)來(lái)的程序確實(shí)是可以運(yùn)行的,但是我將代碼復(fù)制到我的程序中,結(jié)果還是一樣,是不是底層文件哪里還需要修改呢,我找了很久沒(méi)有找到,看來(lái)一圈代碼都是一樣的,但是我的程序就是運(yùn)行不起來(lái)


您好,并不需要修改底層文件,我的所有配置函數(shù)都在main.c文件中,并沒(méi)有對(duì)其他文件進(jìn)行修改,你可以檢查一下你那邊是否不小心對(duì)底層文件進(jìn)行了修改,或可直接在我的工程上進(jìn)行修改。


好的,感謝


樓主最后找到問(wèn)題在哪了么,我也是照著TIM1配置2 3 4 都沒(méi)有用


您好,該貼已回復(fù)你,可以看一下

http://www.findthetime.net/bbs/thread-100095-1.html



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频