[[ファームウェア関数一覧>ファームウェア関数一覧#ab20bb5e]] [[ファームウェア関数一覧>ファームウェア関数一覧#i5485a63]] *RTC_SetPrescaler [#jb7f5932] #contents **ヘッダ宣言 [#s4e31186] **関数プロトタイプ [#nba0f959] void RTC_SetPrescaler(uint32_t PrescalerValue) **動作 [#f3548e47] -RTCのプリスケーラ値を設定します。 **引数 [#ud56b9b6] -PrescalerValue プリスケーラの値。 **戻り値 [#p8581f39] -無し **場所 [#kba5152c] **呼び出し関数 [#v6c7b73e] -[[RTC_EnterConfigMode()>RTC_EnterConfigMode]] -[[RTC_ExitConfigMode()>RTC_ExitConfigMode]] **サンプル [#rb2b4f48] RTCのクロック源はLSEであり、32.768KHzである。1カウント1秒になるようなRTCを得るためには1/32768に分周する必要があるので、この関数で分周率を設定する。RTCがカウントするのはプリスケーラがオーバーフローした時であるので、分周比から1を引いた値を設定する。つまり、32767 = 32768 - 1 である。 /* Set RTC prescaler: set RTC period to 1sec */ RTC_SetPrescaler(32767); /* RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) */ /* Wait until last write operation on RTC registers has finished */ RTC_WaitForLastTask(); **参照 [#i978994d] -リアルタイムクロック&br; [[RCC_APB1PeriphClockCmd]]→[[PWR_BackupAccessCmd]]→[[BKP_DeInit]]→[[RCC_LSEConfig]]→[[RCC_GetFlagStatus]]→&br; [[RCC_RTCCLKConfig]]→[[RCC_RTCCLKCmd]]→[[RTC_WaitForSynchro]]→[[RTC_WaitForLastTask]]→[[RTC_ITConfig]]→[[RTC_SetPrescaler]] -[[STMマイコン徹底入門 HP >http://miqn.net/periph/141.html]]