The port pull-up register controls the pull-up resister enable/disable of each port group. When the corresponding bit is 0, the pull-up resister of the pin is enabled. When 1, the pull-up resister is disabled.
If the port pull-up register is enabled then the pull-up resisters work without pin’s functional setting(input, output,DATAn, EINTn and etc)
上拉寄存器是控制對應埠上拉使能的。當對應位為0時,設置對應引腳上拉使能,為1時,禁止對應引腳上拉使能。如果上拉寄存器使能,無論引腳功能寄存器如何設置(輸入,輸出,數據,中斷等),對應引腳輸出高電平。
推薦閱讀
實驗目的:點亮一個led燈。(使用arm彙編指令)實驗原理:在這裡點亮一個nLED_2,其對用的引腳是GPF5,在GPIO中,每個引腳對有配置寄存器和數據寄存器,對於本例其配置寄存器為GPFCON:0x56000050,和數據寄存器GPFDATA:0x56000054.要設置GPF5(GPF5為GPFCON的第十和十一引腳,【11,10】=01時為輸出)為輸出引腳,並根據電路原理圖,可知是設為低電平,才能點亮LED2.所以[0x56000050]=0x00000400). [0x56000054]=0x00000000 實驗步驟:在linux下編輯源程序,然後利用
發表於 2020-12-23
GPIO基本原理與寄存器配置STM32F103ZET6一共有7組IO口每組IO口有16個IO一共16X7=112個IOGPIOA,GPIOB—GPIOG4種輸入模式:輸入浮空輸入上拉輸入下拉模擬輸入4種輸出模式:開漏輸出開漏復用功能推挽式輸出推挽式復用功能3種最大翻轉速度:-2MHZ-10MHz-50MHz上電復位後,GPIO默認為浮空狀態,部分特殊功能引腳為特定狀態。推輓輸出:可以輸出強高低電平,連接數字器件開漏輸出:只可以輸出強低電平,高電平得靠外部電阻拉高。輸出端相當於三極體的集電極. 要得到高電平狀態需要上拉電阻才行. 適合於做電流型的驅動,其吸收電流的能力相對強(一般20ma以內)。每組GPIO埠的寄存器包括:兩個32
發表於 2020-12-23
1 /**2 *函數功能:初始化引腳模式3 *參數說明:GPIOx,該參數為GPIO_TypeDef 類型的指針,指向GPIO 埠的地址4 * GPIO_InitTypeDef:GPIO_InitTypeDef 結構體指針,指向初始化變量5 */6 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)7 {8 uint32_t currentmode =0x00,currentpin = 0x00,pinpos = 0x00,pos = 0x00;9  
發表於 2020-12-23
一,GPIO口寄存器GPIO有九組IO口,分別用大寫字母表示,即,x=A/B/C/D/E/F/G/H/I.IO口可以由軟體配置成如下8種模式1,輸入浮空2,輸入上拉3,輸入下拉4,模擬輸入5,開漏輸出6,推輓輸出7,推挽式復用功能8,開漏式復用功能二,IO口常用的8個寄存器1,MODER寄存器該寄存器是GPIO埠模式控制寄存器,用於控制IO口的工作模式每組IO下有16個IO口,該寄存器共32位,每2個位控制1個IO,不同設置所對應的模式見上表2,OTYPER寄存器這個寄存器用於控制GPIO的輸出類型,低16位有效,每一個位控制一個IO口,復位後該寄存器值都是03,OSPEEDR寄存器該寄存器控制GPIOx的輸出速度,該寄存器
發表於 2020-12-22
本篇文章主要是學習以M3內核的STM32的GPIO的寄存器的配置,為什麼要學習寄存器,而不利用庫函數呢?我只能說為了讓學的知識更加牢固吧!當然,你可以直接去利用庫函數,但是如果你能認真讀完本篇博客,你會對知識豁然開朗!加油吧!STM32 的每個 IO 埠都有 7 個寄存器來控制。他們分別是:配置模式的 2 個 32 位的埠配置寄存器 CRL 和 CRH;2 個 32 位的數據寄存器 IDR 和 ODR;1 個 32 位的置位/復位寄存器BSRR;一個 16 位的復位寄存器 BRR;1 個 32 位的鎖存寄存器 LCKR;這裡我們僅介紹常用的幾個寄存器,我們常用的 IO 埠寄存器只有 4 個:CRL、CRH、IDR、ODR
發表於 2020-12-22
在使用STM32L151的時候遇到 GPIO_PinAFConfig(xx,xx,xx)函數無效,有時候還有導致程序HardFault的問題。之前遇到就使用直接寄存器操作避免了這個問題,這次出現了Hardfault,我想這得找找原因了,不然每次都得修改寄存器操作,麻煩的很。文件「stm32l1xx_gpio.c」中關於GPIO_PinAFConfig 函數式這麼定義的。當使用的引腳號大於8 的時候會導致hardFault的發生。void GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF){ uint32
發表於 2020-12-22