久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

stm32單片機GPIO端口使用

作者:佚名   來源:來自唐宗之氣   點擊數:  更新時間:2014年09月17日   【字體:

         最近一段時間在學STM32,感覺都是在和寄存器打交道,首先先說下什么是寄存器。寄存器是中央處理器內的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數據和地址。

 
        STM32的每個IO口有7個寄存器控制(1個IO口應該就是一組),分別是兩個32位的端口配置寄存器,CRL和CRH。兩個32位的數據寄存器IDR和ODR(這上面四個是重點),一個32位置位復位寄存器,一個16位復位寄存器,一個鎖存寄存器LCKR.
 
________________________________________________________________________________________________________________
 
端口配置寄存器
 
       端口配置寄存器CRL和CRH有兩部分組成   CNFX和MODEX      
 
                通過設置這兩個來確定模式      (1)GPIO_Mode_AIN 模擬輸入 
                                                                (2)GPIO_Mode_IN_FLOATING 浮空輸入
                                                                (3)GPIO_Mode_IPD 下拉輸入 
                                                                (4)GPIO_Mode_IPU 上拉輸入 
                                                                (5)GPIO_Mode_Out_OD 開漏輸出
                                                                (6)GPIO_Mode_Out_PP 推挽輸出
                                                                (7)GPIO_Mode_AF_OD 復用開漏輸出
                                                                (8)GPIO_Mode_AF_PP 復用推挽輸出
    如果IO口是0-7的話用CRL寄存器,如果是8-15的話用CRH寄存器
 
 
 
使用說明:     MODE         模式                                                    
 
                         00           輸入模式
 
                         01           輸出模式  10MHZ
 
                         10           輸出模式  2MHZ
 
                         11           輸出模式  50MHZ
 
                  
 
                      CNF           所處模式                表達含義
 
                       00               輸入                     模擬輸入模式
 
                       01               輸入                     浮空輸入模式
 
                       10               輸入                     上拉\下拉輸入模式
 
                       11               輸入                      保留
 
 
 
                       00              輸出                      推挽輸出模式
 
                       01              輸出                      開漏輸出模式
 
                       10              輸出                      復用功能 推挽輸出模式
 
                       11             輸出                     復用功能開漏輸出模式
 
 
 
使用方法:
 
             首先是APB2總線上的外設始能寄存器,只要加外設就要將這個使能
 
                                              RCC->APB2ENR  |= 1<<幾位   根據表來說
 
              然后開始配置
 
                         
                                       GPIOB->CRH &= 0XFFFFFFF0;                 通過與將要寫數據的位進行清空
                                       GPIOB->CRH |= 0X03;                              在要寫的為寫內容
                                        GPIOB->ODR = 1<<8;                             在第幾位寫入數據
 
                       ODR是輸出數據寄存器
 
 
 
GPIO端口使用舉例
 
__________________________________________________________________________________________________________________
 
流水燈的.c文件
 
void LED_Init (void)
{
 
//兩個RCC是使能時鐘
 RCC->APB2ENR |= 1<<3;   
 
 RCC->APB2ENR |= 1<<6;   
 
 GPIOB->CRL &= 0XFF0FFFFF;
 GPIOB->CRL |= 0X00300000;
 GPIOB->ODR = 1 << 5;
 
 GPIOE->CRL &= 0XFF0FFFFF;
 GPIOE->CRL|=0X00300000;    //PE.5
 GPIOE->ODR|=1<<5;          //PE.5
}
 
.h文件
 
# define LED0 PBout (5)
# define LED1 PEout (5)
因為是輸出,所以用PXout (引腳號)
 
——————————————————————————————————————————————
 
 
 
按鍵的初始化
 
 
void KEY_Init (void)
{
 RCC->APB2ENR |= 1<<2;
 RCC->APB2ENR |= 1<<6;
 
 GPIOA->CRL &= 0XFFFFFF0;
 GPIOA->CRL |= 0X0000008;   
// GPIOA->ODR |= 1<<1;  GPIOE->CRL &= 0XFFF000FF;
 GPIOE->CRL |= 0X00088800;
 GPIOE->ODR |= 7<<2;    //7<<2   從7的位置右移5位
 
}
 
 
 
注意.h文件
 
 
#define KEY0 PEin(4)    //PE4
#define KEY1 PEin(3) //PE3
#define KEY2 PEin(2) //PE2
#define KEY3 PAin(0) //PA0  WK_UP
因為是輸入,所以用的是PXin (引腳號)
 
關閉窗口

相關文章

主站蜘蛛池模板: 久久久久精 | 色网在线观看 | 韩国久久| 欧美一区二区视频 | 欧美午夜精品久久久久久浪潮 | 偷牌自拍 | 亚洲欧美在线观看 | 96国产精品久久久久aⅴ四区 | 青青久在线视频 | 国产亚洲人成a在线v网站 | 亚洲欧美中文日韩在线v日本 | 久久久欧洲 | 亚洲一区二区三 | 欧美一区二区激情三区 | 日韩第一页 | 国产亚洲精品美女久久久久久久久久 | 国产一区二区电影 | 免费的av网站 | 久久国产精品久久久久久 | 色一级| 天天操天天射天天舔 | 国产精品视频网 | 国产中文字幕网 | 999国产视频 | 国产不卡一区在线观看 | 国产欧美精品区一区二区三区 | 精品国产免费人成在线观看 | 羞羞网站在线观看 | 超碰伊人| 成人区一区二区三区 | 中文字幕精品一区 | 日韩欧美国产电影 | 成人午夜网站 | 国产在线精品一区二区三区 | 午夜精品一区二区三区在线视频 | 亚洲国产精品人人爽夜夜爽 | 久久精品国产一区 | 亚洲成人中文字幕 | 综合色播| 在线看亚洲 | 天堂网avav |