crh寄存器_STM32的GPIO的寄存器介绍和设置
每個(gè)GPIO端口有兩個(gè)32位配置寄存器(GPIOx_CRL,GPIOx_CRH)分別控制每個(gè)端口的高八位和低八位,如果IO口是0-7號(hào)的話,則寫CRL寄存器,如果IO口是8-15號(hào)的話,則寫CRH寄存器,兩個(gè)32位數(shù)據(jù)寄存器(GPIOx_IDR,GPIOx_ODR)一個(gè)是只讀作輸入數(shù)據(jù)寄存器,一個(gè)是只寫作輸出寄存器,一個(gè)32位置位/復(fù)位寄存器(GPIOx_BSRR),一個(gè)16位復(fù)位寄存器(GPIOx_BRR)和一個(gè)32位鎖定寄存器(GPIOx_LCKR)。常用的IO端口寄存器只有四個(gè):CRH,CRL,IDR,ODR。
數(shù)據(jù)手冊(cè)中列出的每個(gè)I/O端口的特定硬件特征, GPIO端口的每個(gè)位可以由軟件分別配置成多種模式。每個(gè)I/O端口位可以自由編程,然而I/0端口寄存器必須按32位字被訪問(不允許半字或字節(jié)訪問)。
另外,STM32的每個(gè)端口使用前都要將其時(shí)鐘使能,STM32的GPIO的時(shí)鐘統(tǒng)一掛接在APB2上,具體的使能寄存器為RCC_APB2ENR,該寄存器的第2位到第8位分別控制GPIOx(x=A,B,C,D,E,F,G)端口的時(shí)鐘使能,當(dāng)外設(shè)時(shí)鐘沒有啟用時(shí),程序不能讀出外設(shè)寄存器的數(shù)值,如打開PORTA時(shí)鐘:
RCC->APB2ENR|=1<<2; //使能PORTA時(shí)鐘
使能外設(shè)時(shí)鐘后,GPIOA的十六位就可以按照設(shè)定的狀態(tài)工作了,之后就是具體設(shè)置哪一位了以第八位為例即高位的首位,在GPIOx_CRH寄存器中進(jìn)行設(shè)置,GPIOA的每一位都有該寄存器的四位來設(shè)定相應(yīng)的參數(shù),這四位中的高兩位(CNF0,CNF1)設(shè)置GPIO的輸入輸出模式,低兩位(MODE0,MO
總結(jié)
以上是生活随笔為你收集整理的crh寄存器_STM32的GPIO的寄存器介绍和设置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 零信任实践之单包认证(SPA)
- 下一篇: crh寄存器_CRL,CRH寄存器