STM32F4外設配置速查 看門狗部分

2021-10-10 09:22:11 字數 2583 閱讀 9561

iwdg.c

#include

"iwdg.h"

void

iwdg_init

(u8 prer,u16 rlr)

//prer為預分頻係數,rlr為溢位時間

溢位時間計算:

t ou

t=4∗

2pre

r∗rl

r32(m

4)

tout=\frac*rlr} (m4)

tout=3

24∗2

prer

∗rlr

​(m4

)iwdg.h

#ifndef __iwdg_h

#define __iwdg_h

#include

"sys.h"

void

iwdg_init()

;#endif

main.c

void

main

(void

)}

餵狗時間存在上下限(視窗),其中下限固定,上限由相關暫存器控制,餵狗時間不能太早也不能過晚

wwdg種有乙個7位的遞減計數器t[6:0],在下列兩種情況之一

餵狗時,計數器值大於某一設定數值w[6:0]

計數器數值從0x40減到0x3f(t6跳變為0)時

產生看門狗復位

如果啟動了看門狗並允許中斷,當遞減計數器等於0x40時產生早期喚醒中斷(ewi),可以在此設定餵狗函式以避免wwdg復位

看門狗超時公式:

t ww

dg

=4096∗2

wdgt

b∗t[

5:0]

+1fp

clk1

t_=4096*2^*\frac}

twwdg​

=409

6∗2w

dgtb

∗fpc

lk1​

t[5:

0]+1

​ 其中,tww

dg

t_tw

wdg​

單位為ms,是wwdg超時時間

f pc

lk1f_

fpclk1

​單位為khz,是apb1的時鐘頻率

w dg

tb

wdgtb

wdgt

b是wwdg的預分頻係數

t [5

:0

]t[5:0]

t[5:0]

是wwdg計數器低6位

wwdg.c

#include

"wwdg.h"

#include

"led.h"

//儲存wwdg計數器的設定值,預設為最大.

u8 wwdg_cnt=

0x7f

;//tr代表t[6:0],計數器值

//wr代表w[6:0],視窗值

//fprer代表分頻係數(wdgtb),僅最低2位有效

//fwwdg=pclk1/(4096*2^fprer). 一般pclk1=42mhz

void

wwdg_init

(u8 tr,u8 wr,u32 fprer)

//初始化wwdg函式

//7. 設定wwdg中斷服務程式

void

wwdg_irqhandler

(void

)

wwdg.h

#ifndef _wwdg_h

#define _wwdg_h

#include

"sys.h"

//tr代表t[6:0],計數器值

//wr代表w[6:0],視窗值

//fprer代表分頻係數(wdgtb),僅最低2位有效

//fwwdg=pclk1/(4096*2^fprer). 一般pclk1=42mhz

void

wwdg_init

(u8 tr,u8 wr,u32 fprer)

;//wwdg初始化函式宣告

void

wwdg_irqhandler

(void);

//wwdg中斷優先順序設定函式宣告,一般可以去掉,直接在"wwdg.c"裡定義

#endif

main.c

#include

"sys.h"

#include

"delay.h"

#include

"usart.h"

#include

"led.h"

#include

"beep.h"

#include

"key.h"

//wwdg相關初始化檔案

#include

"wwdg.h"

intmain

(void

)}

STM32F4外設配置速查 RTC部分

2個32位暫存器包含bcd格式的second minute hour 12 24小時制 day week month year 還可以提供二進位制的亞秒值 系統可自動將月份天數補償位28 29 30 31天,還可以進行夏令時補償 時鐘源 由rtc calr精密校準過的lse 32.768khz 時鐘...

STM32F4外設配置速查 DMA部分

dma即direct memory access 直接儲存器訪問 將資料從乙個位址複製到另乙個位址,當cpu初始化dma控制器後,傳輸動作由dma控制器實現和完成 優點 無需cpu控制 或 中斷壓棧 出棧過程,讓ram與io裝置間可快速傳輸資料,減少cpu負載 雙ahb匯流排,乙個用於儲存器訪問,乙...

STM32F4外設配置速查 FPU與DSP部分

詳細內容參考cortex m4核心程式設計手冊 stm32f4xx及更高配置stm32微控制器才有fpu支援 stm32f4帶有32位單精度硬體fpu,支援浮點指令集,整個fpu單元能被使能和關閉 使用協處理器控制暫存器 scb cpacr 中的cp11和cp10啟用 關閉fpu 晶元復位後,cp1...