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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3702|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

STM32單片機(jī)之GPIO概述

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:763998 發(fā)表于 2020-6-18 17:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

GPIO的概述

2.1.1 什么是GPIO?GPIO的作用?

              GPIO:通用輸入輸出控制器。

              GPIO的作用:芯片用來(lái)控制或采集外部器件的相關(guān)信息

2.1.2 GPIO的特征

<1>輸入狀態(tài):浮空、上拉/下拉、模擬

<2>輸出狀態(tài):推挽或開(kāi)漏 + 上拉、下拉

<3>將數(shù)據(jù)輸入到輸入數(shù)據(jù)寄存器 (GPIOx_IDR) 或外設(shè)(復(fù)用功能輸入)

<4>從輸出數(shù)據(jù)寄存器 (GPIOx_ODR) 或外設(shè)(復(fù)用功能輸出)輸出數(shù)據(jù)

<5>置位和復(fù)位寄存器 (GPIOx_BSRR),對(duì) GPIOx_ODR 具有按位寫(xiě)權(quán)限

<6>模擬功能

<7>復(fù)用功能輸入 /輸出選擇寄存器(一個(gè) I/O 最多可具有 16 個(gè)復(fù)用功能)

<8>輸入數(shù)據(jù)寄存器 (GPIOx_IDR) 每隔 1 個(gè) AHB1 時(shí)鐘周期捕獲一次 I/O 引腳的數(shù)據(jù)。

<9>所有 GPIO 引腳都具有內(nèi)部弱上拉及下拉電阻,可根據(jù) GPIOx_PUPDR 寄存器中的值來(lái)打開(kāi) /關(guān)閉。

2.1.3 GPIO 功能描述

  •      輸入浮空
  •      輸入上拉
  •      輸入下拉
  •      模擬功能
  •      具有上拉或下拉功能的開(kāi)漏輸出
  •      具有上拉或下拉功能的推挽輸出
  •      具有上拉或下拉功能的復(fù)用功能推挽

8) 具有上拉或下拉功能的復(fù)用功能開(kāi)漏

注意:每個(gè) I/O 端口位均可自由編程,但 I/O 端口寄存器必須按 32 位字、半字或字節(jié)進(jìn)行訪問(wèn)

2.1.4 5V容忍原理

2.1.5 I/O 引腳復(fù)用器和映射

              微控制器 I/O 引腳通過(guò)一個(gè)復(fù)用器連接到板載外設(shè) /模塊,該復(fù)用器一次僅允許一個(gè)外設(shè)的復(fù)用功能 (AF) 連接到 I/O 引腳

<1>完成復(fù)位后,所有 I/O 都會(huì)連接到系統(tǒng)的復(fù)用功能 0 (AF0)。

<2>外設(shè)的復(fù)用功能映射到 AF1 至 AF13。

<3>Cortex?-M4F EVENTOUT 映射到 AF15

2.2 GPIO的框架

2.2.1 輸入配置

● 輸出緩沖器被關(guān)閉

● 施密特觸發(fā)器輸入被打開(kāi)

● 根據(jù) GPIOx_PUPDR 寄存器中的值決定是否打開(kāi)上拉和下拉電阻

● 輸入數(shù)據(jù)寄存器每隔 1 個(gè) AHB1 時(shí)鐘周期對(duì) I/O 引腳上的數(shù)據(jù)進(jìn)行一次采樣

● 對(duì)輸入數(shù)據(jù)寄存器的讀訪問(wèn)可獲取 I/O 狀態(tài)

2.2.2 輸出配置

              

● 輸出緩沖器被打開(kāi):

開(kāi)漏模式:輸出寄存器中的“0”可激活 N-MOS,而輸出寄存器中的“1 ”會(huì)使端口保持高組態(tài) (Hi-Z)( P-MOS 始終不激活)。

推挽模式:輸出寄存器中的“0”可激活 N-MOS,而輸出寄存器中的“1 ”可激活P-MOS。

● 施密特觸發(fā)器輸入被打開(kāi)

● 根據(jù) GPIOx_PUPDR 寄存器中的值決定是否打開(kāi)弱上拉電阻和下拉電阻

● 輸入數(shù)據(jù)寄存器每隔 1 個(gè) AHB1 時(shí)鐘周期對(duì) I/O 引腳上的數(shù)據(jù)進(jìn)行一次采樣

● 對(duì)輸入數(shù)據(jù)寄存器的讀訪問(wèn)可獲取 I/O 狀態(tài)

●對(duì)輸出數(shù)據(jù)寄存器的讀訪問(wèn)可獲取最后的寫(xiě)入值

2.2.3 復(fù)用功能

● 可將輸出緩沖器配置為開(kāi)漏或推挽

● 輸出緩沖器由來(lái)自外設(shè)的信號(hào)驅(qū)動(dòng)(發(fā)送器使能和數(shù)據(jù))

● 施密特觸發(fā)器輸入被打開(kāi)

● 根據(jù) GPIOx_PUPDR 寄存器中的值決定是否打開(kāi)弱上拉電阻和下拉電阻

● 輸入數(shù)據(jù)寄存器每隔 1 個(gè) AHB1 時(shí)鐘周期對(duì) I/O 引腳上的數(shù)據(jù)進(jìn)行一次采樣

● 對(duì)輸入數(shù)據(jù)寄存器的讀訪問(wèn)可獲取 I/O 狀態(tài)

復(fù)用與通用的對(duì)比:

2.2.4 模擬功能

● 輸出緩沖器被禁止。

● 施密特觸發(fā)器輸入停用, I/O 引腳的每個(gè)模擬輸入的功耗變?yōu)榱恪J┟芴赜|發(fā)器的輸出被

強(qiáng)制處理為恒定值 (0)。

● 弱上拉和下拉電阻被關(guān)閉。

● 對(duì)輸入數(shù)據(jù)寄存器的讀訪問(wèn)值為“0”。

2.3 GPIO相關(guān)寄存器

2.3.1 GPIO寄存器

              每個(gè)IO口有10個(gè)寄存器控制

4 個(gè) 32 位配置寄存器

GPIOx_MODER

GPIOx_OTYPER

GPIOx_OSPEEDR

GPIOx_PUPDR

2 個(gè) 32 位數(shù)據(jù)寄存器

GPIOx_IDR

GPIOx_ODR

1 個(gè) 32 位置位 /復(fù)位寄存器

GPIOx_BSRR

1 個(gè) 32 位鎖定寄存器

GPIOx_LCKR

2 個(gè) 32 位復(fù)用功能選擇寄存器

GPIOx_AFRL

GPIOx_AFRH

2.3.2 寄存器相關(guān)縮寫(xiě)

              

2.4 軟件設(shè)計(jì)

2.4.1 LED燈

              1.開(kāi)時(shí)鐘

              2.初始化GPIO

              3.點(diǎn)亮燈

2.4.2 蜂鳴器

1.開(kāi)時(shí)鐘

              2.初始化GPIO

              3.開(kāi)啟蜂鳴器

2.4.3 按鍵

1.開(kāi)時(shí)鐘

              2.初始化GPIO

              3.按鍵識(shí)別

                            延時(shí)消抖

                            松手檢測(cè)

2.5 補(bǔ)充

2.5.1 IO口與端口

GPIO口以分組形式存在,每組(端口)有16個(gè)IO口。

                            I/O口:某個(gè)具體引腳

                            端口:16個(gè)I/O口組成

2.5.2 變量與寄存器的異同

                            相同點(diǎn):

變量與寄存器都向內(nèi)存申請(qǐng)空間,可以存儲(chǔ)數(shù)據(jù),都有相應(yīng)地址。

                            不同點(diǎn):

變量地址隨時(shí)變化,寄存器地址永遠(yuǎn)固定;

變量可以存儲(chǔ)浮點(diǎn)類型數(shù)據(jù),寄存器不能存儲(chǔ)浮點(diǎn)類型數(shù)據(jù)。

2.5.3 各類電平

              CMOS電平:

3.3V              邏輯1

0.0V              邏輯0

              TTL電平:

                            5.0V              邏輯1

                            0.0V              邏輯0

              485/232電平:

                            -15V~-3V              邏輯1

                            3V~15V              邏輯0

              差分信號(hào):

                            定義:有兩條線,通過(guò)兩條線的電壓差作為邏輯0/1。

                            好處:傳輸距離很遠(yuǎn)。衰減一致,保證邏輯。

2.5.4 問(wèn)答

<1>為什么使用模塊化編程?

1.降低代碼冗余度,提高代碼的利用率

2.便于閱讀和維護(hù)

<2>為什么使用條件編譯?

1.為了使代碼更加靈活

<3>頭文件使用條件編譯的作用?

  • 防止頭文件重復(fù)引入

<4>注釋的作用?

  • 提高代碼的閱讀性

<5>頭文件一般有什么東西?

  • 頭文件
  • 函數(shù)聲明
  • 變量聲明
  • 變量(不建議)

<6>按鍵按下為什么要延時(shí)消抖?

              按鍵按下瞬間,按鍵從一個(gè)穩(wěn)定狀態(tài)變化到另一個(gè)穩(wěn)定狀態(tài)之間,有一個(gè)不穩(wěn)定的過(guò)程,延時(shí)是為了越過(guò)不穩(wěn)定狀態(tài)存在的時(shí)間,一般為10ms

<7>按鍵如何保持一次性?

              松手檢測(cè):設(shè)置一個(gè)靜態(tài)標(biāo)志位,用于松手檢測(cè)。

<8>知識(shí)領(lǐng)悟

寄存器是編程人員的編程接口,對(duì)于MCU而言,不管你如何封裝,一切配置,終究歸于寄存器配置;而操作寄存器的本質(zhì)是對(duì)操作地址。


以上的Word格式文檔51黑下載地址:

2.STM32-GPIO.docx (1.5 MB, 下載次數(shù): 15)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:384904 發(fā)表于 2020-6-19 00:17 | 只看該作者
好東西,非常想要
回復(fù)

使用道具 舉報(bào)

板凳
ID:763998 發(fā)表于 2020-6-19 15:53 | 只看該作者

哈哈哈,感覺(jué)寫(xiě)的一般般,不敢當(dāng)。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日日夜夜免费精品视频 | 午夜视频在线观看视频 | 成年人视频在线免费观看 | 国产精品免费观看 | 在线日韩| 中文字幕一区二区不卡 | 精品一区二区三区在线观看国产 | 国产精品久久久av | 一级欧美| 精品96久久久久久中文字幕无 | 久久久久国产一区二区三区 | 一道本在线 | 国产精品高潮呻吟久久av黑人 | 亚洲久草 | 亚洲欧美激情视频 | 一级a爱片性色毛片免费 | 神马久久av | 91久久久www播放日本观看 | 日本a视频 | 99精品免费久久久久久久久日本 | yiren22综合网成人 | 男人天堂色 | 欧美日韩精品中文字幕 | 91在线导航| 久久精品久久久久久 | 精品美女在线观看 | 日韩一区二区三区精品 | 精品一二三区 | 亚洲精精品 | 国产精品免费看 | 视频一二区 | 午夜免费福利电影 | 黄色国产视频 | 小视频你懂得 | 色综合99 | 中文字幕视频免费 | 羞羞的视频网站 | 欧美国产日韩精品 | 欧美日韩综合精品 | 日韩欧美一二三区 | 中文字幕在线观看精品 |