文章出處

stm32相關的配置

由于例程使用的主控芯片為STM32L151C8T6,而在本設計中使用的主控芯片為STM32L051C8T6,內核不一樣,并且Cube庫相關的函數接口及配置也會有不同,所以芯片的驅動所以做修改。

RTC 的配置

此例程中,RTC被當做定時器使用,用于定時執行任務。

例程中,RTC使用外部LSE的32.768Khz的晶振作為時鐘源,
而在本設計中,使用內部LSI作為RTC的時鐘源,需要重新設置RTC的分頻參數,使得程序正常運行。

注意MCU內部的低速晶振往往誤差很大,在使用時很大可能會造成模塊接收不到下行包,因為接收對接收窗口的時間要求比較嚴格,所以如果是對下行要求比較嚴格的環境,建議不要使用內部晶振。

根據Fck_spre = Frtcclk/(PREDIV_S+1)/(PREDIV_A+1)
例程中RTC的工作頻率為32.778/(3+1)/(3+1) = 2.048Khz,

而內部晶振的頻率約為37Khz,故PRVEDIV_S和PREDIV_A的值需要改變。

37/2.048 ~= 18;
數據手冊里面有這樣一句話:   
Note: When both prescalers are used, it is recommended to configure the asynchronous 
prescaler to a high value to minimize consumption.
所以:18 = 9*2;故設置PREDIV_A = 8,PREDIV_S = 1;

由于
37/18 ~= 2.055
1/2.055 ~= 0.486618

故此處的宏定義需要稍作修改

 /*!
 * RTC Time base in ms
 */
#define RTC_ALARM_TICK_DURATION                     0.486618      // 1 tick every 466us
#define RTC_ALARM_TICK_PER_MS                       2.055           // 1/2.055 = tick duration in ms ((37/(8+1)/(2+1)) = 2.055Khz)

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()