娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月06日(星期四)

正在發生

2021年02月06日 | STM8學習筆記四——STM8的GPIO基礎知識

發布者:碼字奇才 來源: eefocus關鍵字:STM8  GPIO  基礎知識 手機看文章 掃描二維碼
隨時隨地手機看文章

一、GPIO定義

GPIO,即通用輸入輸出端口General Purpose Input Output的縮寫。

GPIO端口可以通過程序配置成輸入端口或輸出端口。

二、GPIO的IO模式

STM8的GPIO口有12種模式設置,其中輸入4種,輸出8種:

1、GPIO_Mode_In_FL_No_IT浮空輸入無中斷

2、GPIO_Mode_In_PU_No_IT上拉輸入無中斷

3、GPIO_Mode_In_FL_IT浮空輸入有中斷

4、GPIO_Mode_In_PU_IT 上拉輸入有中斷

5、GPIO_Mode_Out_OD_Low_Fast

開漏-輸出低-高速 Output open-drain, low level, 10MHz

6、GPIO_Mode_Out_PP_Low_Fast

推挽-輸出低-高速 Output push-pull, low level, 10MHz

7、GPIO_Mode_Out_OD_Low_Slow

開漏-輸出低-低速 Output open-drain, low level, 2MHz

8、GPIO_Mode_Out_PP_Low_Slow

推挽-輸出低-低速 Output push-pull, low level, 2MHz

9、GPIO_Mode_Out_OD_HiZ_Fast

開漏-輸出高阻-高速 Output open-drain, high-impedance level, 10MHz

10、GPIO_Mode_Out_PP_High_Fast

推挽-輸出高-高速 Output push-pull, high level, 10MHz

11、GPIO_Mode_Out_OD_HiZ_Slow

開漏-輸出高阻-低速 Output open-drain, high-impedance level, 2MHz

12、GPIO_Mode_Out_PP_High_Slow

推挽-輸出高-低速 Output push-pull, high level, 2MHz

或者如下圖所示:

所以我們其實要弄懂的主要是輸入兩種模式(上拉和浮空)以及輸出的兩種模式(推挽和開漏),剩下的只是在這四種模式下根據參數設置不同進一步劃分。

1、上拉輸入模式

所謂上拉模式,即設置輸入模式時,接一個上拉電阻,大概如下圖所示:

上圖是STM8設置GPIO為上拉模式時的端口內部電路簡圖,R1經典取值范圍為30k~80k,典型值為55k。(弱上拉)

注:上拉電阻R越大,上拉作用越小,則為弱上拉;反之,R越小,上拉作用越大,則為強上拉。外部上拉電阻取值經驗值為4.7k~10k。

上下兩個二極管起到一個保護電路的作用,防止外部輸入電壓太高或太低。這個保護電路可以將外部過高電壓降到3.8~4.1V,也可以將外部過低電壓抬升到-0.6V,從而保護內部電路。

上拉輸入模式可以將不確定的浮空端口信號保持在一個高電平,是最常用的GPIO輸入模式。

1、浮空輸入模式

浮空模式和上拉模式最大的區別就是沒有上拉電阻:

這種結構的輸入阻抗較高,能最真實地反映外部輸入信號,主要用于ADC(數模轉化)的場合。

1、推挽輸出模式

推挽(PP)輸出模式如下圖所示:

簡單來說,MOS管Q1和Q2,在輸出高低電平時分別起作用。 輸出高電平的時候,Q1導通,Q2截止;輸出低電平的時候,Q1截止,Q2導通。總之,Q1與Q2在工作時總是保持在一個導通和另一個截止的狀態。推挽輸出模式的優點是損耗小,效率高。

1、開漏輸出模式

開漏(OD)輸出模式,顧名思義即漏極開路的輸出模式,如下圖所示:

開漏輸出模式和推挽輸出模式最大區別在于沒有Q1,只能輸出低電平狀態“0”,而不能直接輸出高電平狀態“1”。必須外接上拉電阻,才能輸出“1”。這其實跟51單片機的P0口是一樣的。

開漏輸出模式的特點:

(1)開漏模式須外接上拉電阻才能輸出高電平,驅動電流大多數是由外部電源經過上拉電阻供給,單片機內部一般只需要提供極小的柵極控制電流即可。降低單片機功耗。

(2)開漏模式可用于電平信號標準的轉換。外部上拉電阻外加的電源電壓可以是5V也可以是3.3V(STM8端口最高可承受5V電壓),開漏結構可以灌入較大電流(20mA),間接實現TTL電平系列或CMOS電平系列的轉換。

(3)開漏模式可用于I2C總線,實現“線與”功能。

(4)開漏模式使用外加上拉電阻,則上拉電阻小,上拉作用強,上升沿時間短,速度快;上拉電阻大,上拉作用小,上升沿時間長,速度緩。

注:STM8單片機“真正的”開漏輸出模式內部電路:PE1/I2C_SCL與PE2/I2C_SDA(沒有連接VDD的保護二極管)

三、GPIO的寄存器設置

GPIO的5個寄存器:

1.輸出數據寄存器ODR;

2.引腳輸入寄存器IDR;

3.數據方向寄存器DDR;

4.控制寄存器CR1;

5.控制寄存器CR2;

模式配置圖,如下圖所示

STM8通過DDR、CR1和CR2三個寄存器來配置不同的輸入輸出模式。用ODR存儲要輸出的信號,用IDR來讀取對應端口的信號。以上5種寄存器都是8位,對應值STM8每組GPIO對應的8個端口(7:0)。

通過寄存器操作GPIO的示例:

int main(void)

{

/*設置內部高速時鐘16M為主時鐘*/

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

GPIOB->DDR = 0x20;//配置GPIOB的方向寄存器,設置pin5為輸出模式

GPIOB->CR1 = 0x20;//配置GPIOB_5為推挽輸出

GPIOB->CR2 = 0x00;

while(1)

{

GPIOB->DDR = 0x20;//GPIOB_5輸出高電平,亮

delay();

GPIOB->DDR = 0x00;//GPIOB_5輸出低電平,暗

delay();

}

}

四、GPIO的庫函數實現。

所謂庫函數,其實就是官方做的驅動程序庫,將對寄存器用結構圖一一對應并封裝起來,并提供了基本的配置函數。我們只要使用官方的庫函數就就可以了,不用再花大力氣研究寄存器的配置。

簡單舉例說明:

GPIO_Init(LED1_PORT,LED1_PIN,GPIO_MODE_OUT_PP_HIGH_FAST );

GPIO_Init這個命令是設置或者說定義管教模式的,上面這條命令的意思就是LED1代表的管教設置為推挽輸出模式,初始高電平,高速模式。

注:LED1_PORT和LED1_PIN應該在相關的頭文件或者別處已注釋,如

#define LED1_PIN GPIO_PIN_5

#define LED1_PORT GPIOB

GPIO_WriteLow(LED1_PORT,LED1_PIN);

在LED1這個管腳輸出低電平;

GPIO_WriteHigh(LED1_PORT,LED1_PIN);

在LED1這個管腳輸出高電平;

GPIO_WriteReverse(LED1_PORT,LED1_PIN);

翻轉LED1這個管腳的電平狀態;


關鍵字:STM8  GPIO  基礎知識 引用地址:STM8學習筆記四——STM8的GPIO基礎知識

上一篇:關于PC-lint,以及如何在MDK中添加PC-lint工具
下一篇:STM8學習筆記三——錯誤:no definition for "assert_failed"

推薦閱讀

隨著天氣越來越冷,關于南北方過冬的方式也一直被人們津津樂道。?  北方過冬靠暖氣?  南方過冬靠正氣?  在寒冷的冬天,安裝在室外的光伏并網逆變器,本身也沒有保溫措施,那逆變器又是靠什么過冬呢??  光伏逆變器的主要作用就是把光伏組件發出來的直流電轉變成交流電,是電力電子產品,主要部件有結構件和電子器件,結構件是不怕低溫的,電子...
在2004年由威爾·史密斯主演的科幻大片《我,機器人》中,片中的機器人公司亮出了一句響亮的廣告詞——“2035年,這是個機器的時代。”而現實生活中,機器手雖然在自動生產線等領域有越來越廣泛的應用,但它依然是冷冰冰工具的形象,具有高度智慧的機器人離普通人的生活依舊遙遠。不過,隨著近兩年人工智能迎來了一段爆發性成長之后,機器具備了更精準地獲...
首先找出板子電路圖,以LED為例接下來就是電路的網標:到對應的芯片手冊里區找寄存器的描述通過對相應寄存器的操作來操作LED燈:首先將對應的寄存器的地址注冊成一個文件:reg.h 1 2 3 4 5 #define gpiobase 0x11000000 6 7 #define GPM4CON (*(volatile unsigned long *)(gpiobase + 0x02E0)) 8 #define GPM4DAT (*(v...
2月5日,中芯國際在2020年第四季度電話會上表示,早已預見過汽車芯片短缺問題,影響不是特別大,不會改變我們的供貨體系。有的廠家增加了汽車產品的供應,導致了有其他客戶來找我們做民用產品,許多產能會在接下來陸續實現。對于產品漲價,中芯國際稱,市場行情已經變了,漲價這件事是經過和客戶商量過的,但是我們遵守契約精神,確定下來的不會變。關于...

史海拾趣

問答坊 | AI 解惑

ARM培訓視頻-dsp-CPLD-FPGA開發視頻-嵌入式系統開發-單片機開發視頻

ARM培訓視頻-dsp-CPLD-FPGA開發視頻-嵌入式系統開發-單片機開發視頻 ------------------------------------------------------------------ 【ARM培訓視頻】課程主要內容 1.概念和基本工具: 嵌入式系統基本概念、嵌入式操作系統介紹 嵌入式系 ...…

查看全部問答∨

我該怎么辦啊?迷茫。。。

我03年畢業于一所普通的本科院校,學的是機械工程自動化專業,畢業后即來到了現在工作的這家在全國還算比較有名的大型家電制造企業從事生產工藝工作。每天的工作枯燥乏味,工藝巡檢,要么就是這個零部件尺寸長了,裝不進去,或者那個零部件短了需要 ...…

查看全部問答∨

wince 設置默認輸入法問題!

最近接手一個wince項目,使用QT4.4.3做的,現在要解決的問題是在控件上輸入的時候,調用出wince自帶的手寫輸入法 我現在的設想是 做一個Dll,用SipEnumIM枚舉所有的輸入法,然后查找出的wince自帶的手寫輸入法的CLSID,將手寫輸入法的CLSID設置為 ...…

查看全部問答∨

關于cc2420的發送問題

本人是個大學生,正在做一個關于用easyarm1138控制cc2420的zigbee項目,為什么我在向2420發送stxon命令后,發送端的sfd沒有變化,同樣接收端的也沒有,請問是什么問題,發送其他命令都有狀態返回的,就是發送stxon后sfd沒有跳變~~ 項目比較趕, ...…

查看全部問答∨

請各位大大幫忙啊!

各位大大:     小弟初學嵌入式開發,想要買一塊Arm7的實驗板,1000以內的,各位大大知道哪些比較合適的阿,有人說周立功的合適,但是不知道哪里能買,請各位大大指條明路啊。小弟拜謝了!…

查看全部問答∨

版主呀,或者管理員呀,快進來看看呀!

好了,歡迎進來,某某某,你好!      想請版主或者管理員等等有能力回答的人告訴我們大家一個問題,那就是:      這個用戶組頭銜是怎么升級的?      跟積分有關系? 還是跟威望 ...…

查看全部問答∨

Sitara AM355x低成本新手套件概述

在德州儀器額微博中看到了這個評估套件的視頻,分享給大家! 視頻內容簡要介紹了這款強大的評估套件 $(\'flv_zg0\').innerHTML=(mobileplayer() ? "" : AC_FL_RunContent(\'width\', \'500\', \'height\', \'375\', \'allowNetworking\', \'inter ...…

查看全部問答∨

工作無成就感

目前的工作提不起激情,輕閑的空虛,無聊的總跑廁所抽悶煙,前段時間還可以搞搞AVR,現在板子不好打了,流程特多,學習很是不方便,為了上班而上班,我不要這樣過   80后!一個沉重的代名詞,仿佛一切定格!如何找回存在的價值! [ 本帖 ...…

查看全部問答∨

控制芯片的選擇

電子設計大賽中的控制類說是四軸飛行器,控制芯片都是用的STM32,我想問一下,MSP430F149可以嗎?姿態算法可以實現嗎? 希望各位大神指點。 謝謝啦。…

查看全部問答∨

從MSP430F149轉到G2553,快把我搞瘋了。

發現所有的手冊中說明的寄存器名稱,MSP430G2553.H中就找不到。不知道是我找錯資料了還是怎么了,麻煩大家給我個好資料。…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 沽源县| 勐海县| 剑河县| 博乐市| 奇台县| 安顺市| 芦山县| 虞城县| 靖西县| 泗洪县| 平武县| 遂平县| 微山县| 化德县| 吴忠市| 金沙县| 仙居县| 武邑县| 阿图什市| 泸溪县| 太原市| 陆丰市| 芜湖市| 马龙县| 红安县| 宝山区| 和平区| 汶川县| 盐城市| 临西县| 连平县| 金秀| 若尔盖县| 太湖县| 尼玛县| 台州市| 天峻县| 浏阳市| 黄大仙区| 遂平县| 儋州市|