STM32F051学习- GPIO
stm32F051 GPIO 有? 電源引腳(三根),復位引腳(兩根boot0,boot1,配置選擇三種不同的啟動模式,從主閃存存儲器,系統(tǒng)存儲器或者內(nèi)置SRAM啟動,代碼可以放到三個不同的地方),GPIOF0~1(兩根,可用于外接晶振,本例中外接8MHz的HSE晶振),GPIOA0~15(16根),GPIOB1~7(8根)。
引腳順序:在芯片上四個角的某一個角上會有標志,從標志位置開始逆時針旋轉,就是引腳的標號順序。
除復位引腳和啟動引腳之外,其它的GPIOA,B,F都是通用引腳,用于與外界溝通。
?
STM32F051-GPIO常用寄存器
?4個32位配置寄存器?
? ? ? ? GPIOx_MODER,? GPIOx_OTYPER,? GPIOx_OSPEEDR,??GPIOx_PUPDR
?2個32位數(shù)據(jù)寄存器
? ? ? GPIOx_IDR 、GPIOx_ODR?
1 個32 位置位 / 復位寄存器
? ? ? GPIOx_BSRR
2 個 32 位復用功能配置寄存器?
? ? ?GPIOx_AFRH 、GPIOx_AFRL
注:每一組GPIO端口(GPIOA, GPIOB, GPIOF)都有一套上述的寄存器去配置它自己的功能
?
GPIOx_MODER模式寄存器, 每兩位配置一個GPIO口 32位寄存器正好可以配置一組(16個GPIO)
00? 01 :輸入輸出模式,? 10,: 可以配置成復用功能,例如GPIOB6~7 可復用成I2C的時鐘線或數(shù)據(jù)線,11:可以配置為ADC數(shù)模轉換功能。
?
GPIOx_OTYPER類型寄存器,每1位配置一個GPIO口 32位寄存器只需要0~15位,其他的保留
?配置引腳為推挽輸出或開漏輸出。
推挽:可以提供穩(wěn)定的高低電平輸出,低電平時接地,高電平時接高電平
開漏:就是不輸出電壓,低電平時接地,高電平時懸空,如果外接上拉電阻,則在輸出高電平時電壓會拉到上拉電阻的電源電壓。
?
GPIOx_OSPEEDR類型寄存器,用于控制GPIO口工作速速。
根據(jù)外接的芯片的需要頻率配置。
?
GPIOx_PUPDR 類型寄存器, 為GPIO接上下拉電阻。
?在51單片機使用時,通常會看到有排阻存在, 這就是上下拉電阻。對于開漏輸出需要外接上下拉電阻,STM32芯片已經(jīng)把上下拉電阻集成到了芯片內(nèi)部,只需要配置相應引腳的寄存機就可以了。
?
GPIOx_IDR 、GPIOx_ODR 、GPIOx_BSRR 用于讀寫GPIO的高低電平狀態(tài)。
GPIOx_AFRH 、GPIOx_AFRL 復用功能寄存器,用于配置GPIO口復用為I2C 、中斷、SPI、uart、i2S等的哪一種。
總結
以上是生活随笔為你收集整理的STM32F051学习- GPIO的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后端: 生成小程序二维码;生成海报;
- 下一篇: 智慧农贸系统-助力农贸产业升级,优化市民