TIM2中斷控制LED燈閃爍遇到的問(wèn)題


//PD4引腳控制LED燈的亮滅


void LED_CSH(void)????????????????????????//PD3,PD4端口初始化

{

? ? RCC->APB2PCENR|=0x20;? ? ? ? ? //開(kāi)啟GPIO_D的時(shí)鐘

? ? GPIOD->CFGLR&=~0xff000;

? ? GPIOD->CFGLR|=0x77000;

? ? GPIOD->OUTDR&=~0x18;



}



void TIM2_CSH(unsigned short shu)????????????//TIM2中斷初始化函數(shù)

{

? ? RCC->APB1PCENR|=0x1;? ? ? ? ? ? ? ? ? ? ?//使能TIM2的時(shí)鐘

? ? TIM2->CTLR1|=0x1<<7;? ? ? ? ? ? ? ? ? ? ?//使能自動(dòng)重裝載

? ? TIM2->CTLR1&=~(0x3<<5);? ? ? ? ? ? ? ? ? //選擇邊沿對(duì)齊

? ? TIM2->CTLR1|=0x1<<4;? ? ? ? ? ? ? ? ? ? ?//向下計(jì)數(shù)

? ? TIM2->DMAINTENR|=0x1;? ? ? ? ? ? ? ? ? ? //允許更新中斷

? ? TIM2->PSC=7199;? ? ? ? ? ? ? ? ? ? ? ? ? //預(yù)分頻器

? ? TIM2->ATRLR=shu;? ? ? ? ? ? ? ? ? ? ? ? ?//自動(dòng)重裝載

? ? TIM2->CTLR1|=0x1;? ? ? ? ? ? ? ? ? ? ? ? //使能計(jì)數(shù)器

? ? *(volatile unsigned int *)0xE000E104=0x1<<12;? ?//使能中斷


}


void TIM2_IRQHandler(void) __attribute__((interrupt("WCH-Interrupt-fast")));????????????


void TIM2_IRQHandler(void)????????????????????????//中斷函數(shù)

{

? ? ? ?if(TIM2_UIF)

? ? {

? ? ? ? ? ?TIM2_UIF0;

? ? ? ? ? ?if(zj)

? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? GPIOD->OUTDR|=0x10;

? ? ? ? ? ? ? ?}

? ? ? ? ? ?else

? ? ? ? ? ? ? ?{

? ? ? ? ? ? ? ? GPIOD->OUTDR&=~0x10;

? ? ? ? ? ? ? ?}

? ? ? ? ? ?zj=~zj;

? ? }

}



int main(void)

{

? ? LED_CSH();

? ? TIM2_CSH(9999);

? ? js=0;

while(1)

? ? {

? ? ? ? GPIOD->OUTDR|=0x8;

? ? ? ? ?GPIOD->OUTDR&=~0x8;

}

}


如果while里面泵放?GPIOD->OUTDR&=~0x8,中斷按照設(shè)定的時(shí)間執(zhí)行亮滅。如果加了GPIOD->OUTDR&=~0x8中斷就不按照設(shè)定的時(shí)間中斷去控制PD4引腳了。(使用的是ch32V307-VCT6評(píng)估板)


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

您好,根據(jù)你的程序,main函數(shù)while循環(huán)中是對(duì)PD3引腳進(jìn)行控制翻轉(zhuǎn),中斷中是對(duì)PD4進(jìn)行控制,正常是不會(huì)產(chǎn)生影響的。注意程序中若使用了全局變量,注意要加volatile防止被優(yōu)化,此外可以檢查一下工程文件的配置是否正確。若方便,可將可復(fù)現(xiàn)問(wèn)題的工程發(fā)我(lzs@wch.cn)具體看一下。


已發(fā)送


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

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