STM32中SYSTICK定時(shí)器、端口復(fù)用和重映射
第一部分STM32SYSTICK定時(shí)器:
systick 定時(shí)器按照字面意思就知道是一個(gè)簡(jiǎn)單的定時(shí)器,主要用來(lái)做延時(shí),以避免MCU的資源浪費(fèi)。
它是一個(gè)24位的倒置計(jì)數(shù)器,倒置的意思就是從最大數(shù)字遞減到0,SysTick定時(shí)器被捆綁在NVIC中,用于產(chǎn)生SYSTICK異常,即用于中斷系統(tǒng)。
systick有四個(gè)寄存器分別如下:
1、CTRL SysTick控制和狀態(tài)寄存器LOAD :主要用于使能 systick定時(shí)器,異常請(qǐng)求,選擇內(nèi)部還是外部時(shí)鐘,計(jì)數(shù)是否為零標(biāo)志位
2、SysTick自動(dòng)重裝載除值寄存器:就是存放計(jì)數(shù)遞減到零以后所自動(dòng)裝載的值。
3、VALSysTick當(dāng)前值寄存器CALIB :按照意思就可知是當(dāng)前計(jì)數(shù)的值,對(duì)它寫(xiě)入則會(huì)清零該數(shù)值,并且把CTRL中計(jì)數(shù)是否為零的標(biāo)志位也清零。
4、SysTick校準(zhǔn)值寄存器:一般不用
A、固件庫(kù)中的Systick相關(guān)函數(shù):
SysTick_CLKSourceConfig() //Systick時(shí)鐘源選擇misc.c文件中
SysTick_Config(uint32_tticks) //初始化systick,時(shí)鐘為HCLK,并開(kāi)啟中斷
//core_cm3.h/core_cm4.h文件中
B、Systick中斷服務(wù)函數(shù):
voidSysTick_Handler(void);
第二部分:端口復(fù)用和重映射
端口復(fù)用的官方解釋為:
STM32有很多的內(nèi)置外設(shè),這些外設(shè)的外部引腳都是與GPIO復(fù)用的。也就是說(shuō),一個(gè)GPIO如果可以復(fù)用為內(nèi)置外設(shè)的功能引腳,那么當(dāng)這個(gè)GPIO作為內(nèi)置外設(shè)使用的時(shí)候,就叫做復(fù)用。
粗俗解釋?zhuān)壕褪且粋€(gè)端口可以有很多功能,就叫端口復(fù)用。
端口映射的解釋可以理解為,一個(gè)端口根據(jù)地址的計(jì)算方式轉(zhuǎn)移到另外一個(gè)端口。