1. 程式人生 > >stm32學習筆記 F1系列GPIO相關暫存器的配置

stm32學習筆記 F1系列GPIO相關暫存器的配置

對於stm32  F1系列每組GPIO埠的暫存器包括:GPIOx_CRL ,GPIOx_CRH,GPIOx_IDR,GPIOx_ODR,GPIOx_BSRR,GPIOx_BRR和GPIOx_LCKR七個暫存器

其中:

 GPIOx_CRL為埠配置低暫存器;

GPIOx_CRH埠配置高暫存器

GPIOx_IDR為埠輸入暫存器;

GPIOx_ODR為埠輸出暫存器;

GPIOx_BSRR為埠位設定/清除暫存器;

GPIOx_BRR為埠位清除暫存器;

GPIOx_LCKR為配置鎖存暫存器。

通過以上7個暫存器可以控制一組GPIO的16個IO口。

GPIOx_CRL GPIOx_CRH各32位,從0位開始每4位完成對一個IO口的配置,即通過設定GPIOx_CRL

配置0-7口,通過設定GPIOx_CRH配置8-15口。

GPIOx_CRL的0-3位配置埠0為例:

0-1位設定埠0的模式00:輸入模式 01:輸出模式,最大速率為10MHz 10:輸出模式,最大速率為2MHz 11:輸出模式,最大速率為50MHz

2-3位設定埠0的配式

在輸入模式下 00:模擬輸入模式01:浮空輸入模式10:上拉/下拉輸入模式(下拉輸入ODR暫存器相對應位設定為0,上拉輸入ODR暫存器相對應位設定為1)11:保留

在輸出模式下 00:通用推輓輸出模式01:通用開漏輸出模式10:複用功能推輓輸出模式11:複用功能開漏輸出模式

GPIOx_IDR 32位其中16-31位保留始終為0,0-15位為只讀模式,讀出值為對應IO口的狀態。

GPIOx_ODR 32位其中16-31位保留始終為0,0-15位可讀可寫,可以分別對各個ODR位進行獨立的設定/清除,

注:下拉輸入ODR暫存器相對應位設定為0,上拉輸入ODR相對應位設定為1。

GPIOx_BSRR 32位,其中:

0-15位為設定對應埠位,當值為0時對對應埠的ODR位不產生影響,當值為1時設定對應的ODR位為1。

16-31位為清除對應埠的位,當值為0時對對應埠的ODR位不產生影響,當值為1時清除對應的ODR位為0。

注:如果同時對同一埠對應的0-15位與16-31位進行了設定,0-15位起作用。

GPIOx_BRR 32位,16-31位保留,0-15位為清除對應埠的位,當值為0時對對應埠的ODR位不產生影響,當值為1時清除對應的ODR位為0。