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

歷史上的今天

今天是:2025年07月01日(星期二)

2019年07月01日 | STM32學習筆記(三) STM32的GPIO的深入學習

發布者:mu22 來源: eefocus關鍵字:STM3  GPIO 手機看文章 掃描二維碼
隨時隨地手機看文章

STM32的開發學習主要涉及軟硬件兩個部分的實現,包含眾多外設和總線的理解配置。STM32的整個學習曲線并不陡峭,但入門卻相當困難,因此在學習之初,多動手實驗和測試相當重要,GPIO作為整個STM32與外部連接的端口,難度不高,卻十分重要。從深入解析GPIO外設開始,一步步熟悉掌握STM32各個模塊,就是STM32的整個學習流程。

GPIO模塊回顧

    在嵌入式軟件開發中,幾乎所有功能的實現都需要GPIO端口輸出才能發揮作用。GPIO端口的操作包括時鐘使能,寄存器配置,端口信息修改。這些基礎的東西上一章已經講過,我這里就不在細說,我這里主要講GPIO涉及到的其它庫函數。

1. 讀取GPIO端口數據函數

    GPIO_ReadInputDataBit(GPIOx,GPIO_Pin_y);//讀取單個輸入端口的數據

    GPIO_ReadInputData(GPIOx);//讀取整個輸入端口的數據

    GPIO_ReadOutputDataBit(GPIOx, GPIO_Pin_y);//讀取單個輸出端口的數據

    GPIO_ReadOutputData (GPIOx);//讀取整個輸入出端口的位數據

    這4個庫函數是用來直接讀取端口數據的,其中x:A-G y: 0~15

    上面的函數實現的是讀取當前GPIO口或位的輸入輸出數據,庫函數沒有什么可說的。

    但這幾個函數涉及到下面兩個寄存器:

    端口數據輸入寄存器(GPIOA_IDR~GPIOG_IDR);

    端口數據輸出寄存器(GPIOA_ODR~GPIOG_ODR);

    這兩個寄存器都是16位的,高16位保留,讀取值為0,低16位代表著對應GPIO端口位[15:0]的狀態,偏移值位0cH,具體地址可參考寄存器表。上面的庫函數讀取Data就是讀取這兩個寄存器中選定那個的低16位,讀取DataBit就是讀取選定寄存器16位中的任意選定位。

 2 . 寫入GPIO端口數據函數

   GPIO_WriteBit(GPIOx, GPIO_Pin_y,BIT_SET/BIT_RESET);//置位或者復位單個輸出端口的數據

   GPIO_Write(GPIOx, 0x1111);//置位或者復位整個輸出端口的數據

   其中x:A-G y: 0~15

   這兩個函數是對GPIO_SetBits和GPIO_ResetBits的補充,可以滿足對多個端口同時設置狀態的特性。

   端口復位置位寄存器(GPIOA_BSRR~GPIOG_BSRR) ,32bit復位置位寄存器,w(只寫,下同),

   [31~16]寫0無效,寫1對應GPIOx_ODR位置0

   [15~0]寫0無效,寫1對應GPIOx_ODR位置1

   端口復位寄存器(GPIOA_BRR~GPIOG_BRR),32bit復位寄存器w

  高16位保留,低16位

   [15~0]寫0無效,寫1對應GPIOx_ODR位置0 若GPIOx_BRR和GPIOx_BSRR同時設置,以GPIOx_BSRR為準。

 3. GPIO功能鎖存函數

   GPIO_PinLockConfig(GPIOx, GPIO_Pin_y);//鎖存選擇端口配置寄存器的對應位

  端口鎖存寄存器(GPIOA_LCKR~GPIOG_LCKR),32bit寄存器,高16位保留,低16可隨時讀出,1代表對應配置位被激活鎖存,0代表可以被激活,激活是有固定的寫入順序的。鎖存是不能亂用的,如果鎖存了一個端口的功能寄存器,那么在下次系統復位前,端口的功能就不可更改,這在某些情況下是有利的,特別是在程序中如果重新定義某些GPIO口的功能時,在確定其中某一GPIO端口在整個系統運行中狀態保持不變,鎖存就避免誤修改,但是如果鎖存的GPIO在后續的代碼段中有不同的功能,就會無法修改,產生錯誤。因此鎖存和GPIO_StructInit, GPIO_DeInit,GPIO_AFIODeInit這些初始化函數一樣,使用前要考慮清楚。

4.GPIO特殊功能函數

  函數GPIO_EventOutputConfig(GPIO_PortSourceGPIOx,GPIO_PinSourcey);事件輸出。

  函數GPIO_EXTILineConfig(GPIO_PortSourceGPIOx, GPIO_PinSourcey); 外設端口作為中斷線號輸入

  這兩個函數我就不多說了,在EXTI-NVIC中會有詳細解釋。

  函數GPIO_PinRemapConfig(u32GPIO_Remap, FunctionalState NewState);改變指定管腳的映射,很多復用功能的引出腳可以通過重映射,從不同的I/O管腳引出,即復用功能的引出腳位是可通過程序改變的。就是上面庫函數。

函數GPIO_AFIODeInit(); 取消所有的復用功能。


關鍵字:STM3  GPIO 引用地址:STM32學習筆記(三) STM32的GPIO的深入學習

上一篇:解決STM32 SPI 半殘廢 NSS無法拉高
下一篇:STM32F103mini教程通用定時器

推薦閱讀

據日本NHK電視臺報道,日本汽車制造巨頭本田已經停止繼續開發可用雙足步行的人型機器人“ASIMO”。今后,本田將致力于研發可提供看護護理等更為實用的機器人技術。據報道,ASIMO是本田研發的人型機器人。2000年正式問世的ASIMO 1號凝聚尖端技術,同時也是真正含義上的可雙足步行的機器人,因此備受矚目。在此之后,直到2011年為止本田公司相繼推出7代ASIM...
一、RTC實時時鐘特征與原理查看STM32中文手冊 16 實時時鐘(RTC)(308頁)RTC (Real Time Clock):實時時鐘實時時鐘是一個獨立的定時器。 RTC模塊擁有一組連續計數的計數器,在相應軟件配置下,可提供時鐘日歷的功能。修改計數器的值可以重新設置系統當前的時間和日期。RTC模塊和時鐘配置系統(RCC_BDCR寄存器)處于后備區域,即在系統復位或從待機模式...
SPI總線系統是一種同步串行外設接口;是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳,同時為PCB的布局上節省空間,提供方便,正是出于這種簡單易用的特性,現在越來越多的芯片集成了這種通信協議。 許多的芯片都用這種協議通信:EEPROM、Flash、實時時鐘、AD轉換器、數字信號處理器等:MSP430的USART模塊不僅...
在6月的最后一天,HarmonyOS官方通過微博公布新一批HarmonyOS的升級名單,共計24款機型公測開啟。完整機型包括:華為Mate系列:華為Mate XS/Mate X、華為Mate 20/Mate 20 Pro/Mate 20 RS保時捷設計/Mate 20X/Mate 20X 5G/MatePad 10.4英寸/MatePad 5G 10.4英寸華為P系列:P30/P30 Pro華為nova系列:華為nova 8 SE/nova 7 SE 5G/nova 7 ...

史海拾趣

問答坊 | AI 解惑

基于FPGA的USB接口IP核設計

2.1 UTM模塊 USB總線數據線由DP和DN組成,是I/O端口。并行通過對DP和DN的上拉、下拉來區別低速USB設備和高速USB設備。 USB總線上的數據首先通過UTM,進行NRZI解碼和位剝離后,串并轉換為8位并行數據,傳送給SIE中的UTMI或從UTMI接收8位并行數據 ...…

查看全部問答∨

從巴黎5幅名畫被盜來看安防系統的不足

5月19日,巴黎現代藝術博物館的5幅分別出自畢加索、馬蒂斯、布拉克、萊熱以及莫迪利亞尼之手的世界級名畫一夜之間被秘密盜走。這5幅名畫總價值5億歐元(有媒體更正為1億歐元),目前警方已開始著手調查。   據法國媒體報道,巴黎現代藝術博物館 ...…

查看全部問答∨

初涉操作系統,該從何入手

非計算機專業的,在ARM平臺上,需要跑操作系統(及寫相關驅動),但是對操作系統沒有深刻的理解(以前未涉及操作系統), 1、該從哪個操作系統下手對我來說比較現實? 2、是否需要研究操作系統內核? 3、除了語言,應當具備哪些基礎知識? 4、 ...…

查看全部問答∨

vxWorks compress rom的解壓縮速度問題,MIPS 24KEC CACHE 4路組相連

手上在做一個用MIPS32   24KEC的項目,CACHE這塊似乎我一直沒調對,后邊都起的差不多了但是這里仍然有問題 體現如下:無論在config0最后3bit寫0,2,3,7   就是寫透關閉寫回還有一個是UNCACHE 加速~不是很明白~總之幾個CACH ...…

查看全部問答∨

如何用\WINCE500\PUBLIC\SERVERS\SDK\SAMPLES下的ftpd文件夾做一個FTP服務器的exe呢(用EVC來實現)?

如何用\\WINCE500\\PUBLIC\\SERVERS\\SDK\\SAMPLES下的ftpd文件夾里的那些文件做一個FTP服務器的exe呢(用EVC來實現)? 做出一個exe文件來,一點擊就相當與建立了一個FTP服務器. 請高手給出思路,多謝! …

查看全部問答∨

也是晶振問題。上電時 經常 不起振。

我的430F1111, 3.3V電壓。4MHz晶體上電時 經常 不起振。機器死在那里無任何反應,看門狗也不起作用。好象非常不可靠。6塊一樣的板,一樣的現象。負載電容換了幾種容量,一樣。請大俠指教。謝謝!…

查看全部問答∨

PNI SpacePoint游戲手柄應用

PNI SpacePoint游戲手柄應用資料分享 …

查看全部問答∨

ZIGBEE-ZSTACK協議棧中UART的兩種模式

協議棧中UART有兩種模式: 1、中斷 2、DMA對于這兩種模式具體運用在哪一步,糾結了很久.通過UART配置結構: typedef struct {   uint8 *rxBuf;   uint8 rxHead;   uint8 rxTail;   uint8 rxMax; &nb ...…

查看全部問答∨

旋轉LED問題

本帖最后由 chenmoni 于 2017-4-23 08:16 編輯 按照網上的圖和程序做的旋轉LED,燈一直亮著不變,求幫助看程序是不是哪里不對。謝謝! #include #define uint unsigned int #define uchar unsigned char sbit D1=P3^2; sbit D2=P3^4; sbit ...…

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

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 琼中| 青田县| 定边县| 兰西县| 莱阳市| 房产| 荥阳市| 桐乡市| 左权县| 濮阳县| 正阳县| 洛浦县| 正镶白旗| 海口市| 长宁县| 甘德县| 高阳县| 太湖县| 许昌市| 宁德市| 江陵县| 田林县| 晴隆县| 黄大仙区| 土默特左旗| 惠东县| 马关县| 墨竹工卡县| 涿鹿县| 保定市| 长阳| 山阴县| 黑龙江省| 梧州市| 屯昌县| 玉林市| 乳山市| 上犹县| 明溪县| 永定县| 河北区|