<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32學習筆記之GPIO

          STM32學習筆記之GPIO

          作者: 時間:2016-11-26 來源:網(wǎng)絡 收藏
          GPIO功能描述

          每個GPI/O端口有兩個32位配置寄存器(GPIOx_CRL,GPIOx_CRH),兩個32位數(shù)據(jù)寄存器(GPIOx_IDR和GPIOx_ODR),一個32位置位/復位寄存器(GPIOx_BSRR),一個16位復位寄存器(GPIOx_BRR)和一個32位鎖定寄存器(GPIOx_LCKR)。根據(jù)數(shù)據(jù)手冊中列出的每個I/O端口的特定硬件特征, GPIO端口的每個位可以由軟件分別配置成多種模式。 ─ 輸入浮空 ─ 輸入上拉 ─ 輸入下拉 ─ 模擬輸入 ─ 開漏輸出 ─ 推挽式輸出 ─ 推挽式復用功能 ─ 開漏復用功能每個I/O端口位可以自由編程,然而I/0端口寄存器必須按32位字被訪問(不允許半字或字節(jié)訪問)。GPIOx_BSRR和GPIOx_BRR寄存器允許對任何GPIO寄存器的讀/更改的獨立訪問;這樣,在讀和更改訪問之間產生IRQ時不會發(fā)生危險。

          本文引用地址:http://www.ex-cimer.com/article/201611/321705.htm


          void GPIO_Configuration(void)
          {
          GPIO_InitTypeDef GPIO_InitStructure;

          #ifdef USE_STM3210C_EVAL

          GPIO_PinRemapConfig(GPIO_PartialRemap_USART3, ENABLE);


          GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
          #elif defined USE_STM3210B_EVAL

          GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
          #endif


          GPIO_InitStructure.GPIO_Pin = USARTy_RxPin;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
          GPIO_Init(USARTy_GPIO, &GPIO_InitStructure);


          GPIO_InitStructure.GPIO_Pin = USARTz_RxPin;
          GPIO_Init(USARTz_GPIO, &GPIO_InitStructure);


          GPIO_InitStructure.GPIO_Pin = USARTy_TxPin;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
          GPIO_Init(USARTy_GPIO, &GPIO_InitStructure);


          GPIO_InitStructure.GPIO_Pin = USARTz_TxPin;
          GPIO_Init(USARTz_GPIO, &GPIO_InitStructure);


          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);

          GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
          GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
          GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_Init(GPIOA, &GPIO_InitStructure);
          //GPIO_Init(GPIOB, &GPIO_InitStructure);

          }

          #ifndef __LED_H
          #define __LED_H

          #include "stm32f10x.h"

          #define LED1On()GPIOA->BSRR = GPIO_Pin_4
          #define LED1Off()GPIOA->BRR = GPIO_Pin_4
          #define LED2On()GPIOA->BSRR = GPIO_Pin_5
          #define LED2Off()GPIOA->BRR = GPIO_Pin_5
          #define LED3On()GPIOA->BSRR = GPIO_Pin_6
          #define LED3Off()GPIOA->BRR = GPIO_Pin_6
          #define LED4On()GPIOA->BSRR = GPIO_Pin_7
          #define LED4Off()GPIOA->BRR = GPIO_Pin_7

          #endif

          PS:在使用GPIO前必須進行配置,注意復用功能,使能GPIO時鐘等。



          關鍵詞: STM32學習筆記GPI

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();