CH579 清除TMR2中斷標(biāo)志位失效

條件:在使用CH579 的BLE Peripheral例程時(shí),增加了TMR2作1s周期定時(shí)器,并觸發(fā)周期結(jié)束中斷。

現(xiàn)象:進(jìn)入TMR2中斷后,無論是直接調(diào)用函數(shù)還是直接寫寄存器,TMR2中斷標(biāo)志位都無法清除,就導(dǎo)致不斷進(jìn)入TMR2中斷

變更:即使不初始化BLE,也不行

請(qǐng)各位大佬幫忙看一下要怎么解決這個(gè)問題,謝謝?。?!


TMR2初始化代碼如下

????void TMR2_Timer1s(void)

????{

????TMR2_TimerInit(1000000/32);/* 1s定時(shí)*/

????

????/* 使能計(jì)數(shù)溢出中斷 */

????TMR2_ClearITFlag( TMR0_3_IT_CYC_END );

????TMR2_ITCfg(ENABLE, TMR0_3_IT_CYC_END);

????NVIC_EnableIRQ(TMR2_IRQn);

????}


寄存器如下:

image.png


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

純TMR例子,參考CH579EVT的TMR例子。

具體路徑如下:./EVT/EXAM/TMR/


也試過TMR定時(shí)器例程,還是不行

具體表現(xiàn)為:不能清除中斷標(biāo)志位,調(diào)試時(shí)進(jìn)入中斷的計(jì)數(shù)器值隨機(jī)

測(cè)試過程如下:

image.png


其他先不說,

TMR2_TimerInit(1000000/32);?

在官方sdk的默認(rèn) 工程里, CH579 ble的默認(rèn)主頻是跑在32Mhz,?TMR2_TimerInit 實(shí)際上是是對(duì)計(jì)數(shù)器的 結(jié)束值進(jìn)行賦值,,你賦值是

1000000/32 = 31250 ,

32e6/31250 = 1024hz,你定時(shí)是1/1024Hz =?0.0009765625s


你確定是不能清除中斷,還是中斷太頻繁了

這樣才是1s 的定時(shí):

TMR2_TimerInit(32e6);


謝謝tech46

確實(shí)是我自己的計(jì)數(shù)器配置錯(cuò)誤,導(dǎo)致頻繁進(jìn)入中斷,而不是不能清除中斷標(biāo)志位,非常感謝


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

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