CH582M的Systick定時器使用問題

用CH582M作為藍牙從設(shè)備時,調(diào)用SYS_GetSysTickCnt()函數(shù)獲取systick計數(shù)器的值用作隨機數(shù),讀到的數(shù)據(jù)總是0,這樣的使用之前在CH573F上是可以正常獲取的,代碼也是直接移植過來的,看到void CH58X_BLEInit(void)函數(shù)已經(jīng)啟動了systick定時器,請問是不是在CH582上systick實際并沒有使用還是什么情況?

如圖嘗試一下:

image.png


展開函數(shù)

RV_STATIC_INLINE uint32_t SysTick_Config(uint64_t ticks)

{

? ? if((ticks - 1) > SysTick_LOAD_RELOAD_Msk)

? ? ? ? return (1); /* Reload value impossible */


? ? SysTick->CMP = ticks - 1; /* set reload register */

? ? PFIC_EnableIRQ(SysTick_IRQn);

? ? SysTick->CTLR = SysTick_CTLR_INIT |

? ? ? ? ? ? ? ? ? ? SysTick_CTLR_STRE |

? ? ? ? ? ? ? ? ? ? SysTick_CTLR_STCLK |

? ? ? ? ? ? ? ? ? ? SysTick_CTLR_STIE |

? ? ? ? ? ? ? ? ? ? SysTick_CTLR_STE; /* Enable SysTick IRQ and SysTick Timer */

? ? return (0);? ? ? ? ? ? ? ? ? ? ? ?/* Function successful */

}

在void CH58X_BLEInit(void)調(diào)用SysTick_Config(SysTick_LOAD_RELOAD_Msk),這里看應(yīng)該是直接返回1,定時器沒有啟動,是不是在藍牙的例程里,systick并沒有使用。


藍牙例程里面在CH58X_BLEInit函數(shù)中使能中斷后立馬又Disable了,所以重新開啟一下就可以了。

注意不要開睡眠,開睡眠主頻停止了。

image.png


對對,是啟動了HAL_SLEEP模式


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

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