當前位置:首頁 » 編程軟體 » gpio的編程

gpio的編程

發布時間: 2022-08-09 19:25:48

A. GPIO引腳初始化編程 STM32F103晶元串列口1的數據收、發引腳分別為PA10、PA9,

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);

B. stm32f103VE的每個GPIO可以作為外部中斷源,簡要說出外部中斷編程步驟

摘要 STM32F103的中斷控制器支持19個外部中斷/事件請求。每個中斷設有狀態位,每個中斷/事件都有獨立的觸發和屏蔽設置。STM32F103的19個外部中斷為:

C. STM8當中的GPIO各模式如何用

TM8的通用輸入/輸出口用於晶元和外部進行數據傳輸。一個IO埠可以包括多達8個引腳,每個引腳可以被獨立編程作為數字輸入或者數字輸出口。另外部分口還可能會有如模擬輸入,外部中斷,片上外設的輸入/輸出等復用功能。但是在同一時刻僅有一個復用功能可以映射到引腳上。
復用功能的映射是通過選項位元組控制的。請參考數據手冊關於選項位元組的描述。
每個埠都分配有一個輸出數據寄存器,一個輸入引腳寄存器,一個數據方向寄存器,一個選擇寄存器,和一個配置寄存器。一個I/O口工作在輸入還是輸出是取決於該口的數據方向寄存器的狀態。

GPIO主要功能

  • 可選擇的輸入模式:浮動輸入和帶上拉輸入

  • 可選擇的輸出模式:推挽式輸出和開漏輸出

  • 數據輸入和輸出採用獨立的寄存器

  • 外部中斷可以單獨使能和關閉

  • 輸出擺率控制用以減少EMC雜訊

  • 片上外設的I/O功能復用

  • 當作為模擬輸入時可以關閉輸入施密特觸發器來降低功耗

  • 在數據輸出鎖存時支持讀-修改-寫

  • 輸入兼容5V電壓

  • I/O口工作電壓范圍為1.6 V到VDDIOmax

  • I/O的配置和使用

    每一個埠都有一個輸出數據寄存器(ODR),一個引腳輸入寄存器(IDR)和一個數據方向寄存器(DDR)總是同相關的。
    控制寄存器1(CR1)和控制寄存器2(CR2)用於對輸入/輸出進行配置。任何一個I/O引腳可以通過對DDR,ODR,CR1和CR2寄存器的相應位進行編程來配置。
    寄存器中的位n對應於口的引腳n。各種不同配置總結如表18。


    (表18:IO口配置表)

    注意:連接VDD的二極體在實際開漏極狀態引腳是無效的,在引腳和VOL之間的局部保護設備重要性是有效的。
    沒有使用的I/O引腳必須連接到一個固定的電平值。或者是上拉或者是下拉。

    輸入模式

    將DDRx位清零就選擇了輸入模式。在該模式下讀IDR寄存器的位將返回對應I/O引腳上的電平值。
    如表18所示,理論上STM8可以通過軟體配置得到四種不同的輸入模式:懸浮不帶中斷輸入,懸浮帶中斷輸入,上拉不帶中斷輸入和上拉帶中斷輸入。但是在實際情況下不是所有的口都具有外部中斷能力和上拉,用戶應參考數據手冊中關於每個引腳的實際硬體性能描述來了解更多細節。

    輸出模式

    將DDRx位置1就選擇了輸出模式。在該模式下向ODR寄存器的位寫入數據將會通過鎖存器輸出對應數字值到I/O口。讀IDR的位將會返回相應的I/O引腳電平值。通過軟體配置CR1,CR2寄存器可以得到不同的輸出模式:上拉輸出,開漏輸出。

    低功耗模式

    表19低功耗模式對STM8S的GPIO口的影響

    模式 描述

    等待(Wait) 對I/O口無影響。外部中斷可以使MCU退出等待(Wait)模式

    停機(Halt) 對I/O口無影響。外部中斷可以使MCU從停機(Halt)模式喚醒

    注意:如果PA1/PA2被用來連接外部諧振器,為了確保在HALT模式下有最低功耗必須配置PA1和PA2為帶上拉輸入。

D. -GPIO 輸入輸出-按鍵顯示實驗程序怎麼寫 stm32 LED

1、寫個按鍵檢測函數,符合條件了
2、就進入流水燈的編程唄
3、比如簡單點的直接就IO口通斷這樣控制(這里以GPIOA0到3為4個燈,高電平亮)
GPIO_SetBits(GPIOA,GPIO_Pin_0);
GPIO_ResetBits(GPIOA,GPIO_Pin_0);
delay(1000);
GPIO_SetBits(GPIOA,GPIO_Pin_1);
GPIO_ResetBits(GPIOA,GPIO_Pin_1);
delay(1000);
GPIO_SetBits(GPIOA,GPIO_Pin_2);
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
delay(1000);
GPIO_SetBits(GPIOA,GPIO_Pin_3);
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
delay(1000);

E. 1.按要求完成GPIO的輸出編程GPC0~GPC7用循環語句實現8個發光二級管GPC0到GPC7逐個點亮

只要把GPIO1和GPIO0的地址偏移量獲得就可以了。
偽代碼:
delta_addr = addr(GPIOC1) - addr(GPIOC0);

for(i = 0; i < 8; i++) {
點亮(GPIOC0 + i* delat_addr);
}

F. gpio編程如何將程序

嘿嘿,那是當然了,STM32是32位單片機,51是8位機,兩者不是一個數量級的。
51單片機的I/O口就是I/O口,沒那麼多功能,
而STM32呢,它的GPIO口既可以做數字I/O,有些也可以做A/D,D/A,有些可以做SPI或者I2C對外通訊,還有些是做PWM脈寬輸出,功能各有不同。這些功能都需要實現配置好才能讓單片機知道你打算怎麼用這些口。51簡單死了,沒有A/D,D/A,沒有SPI通訊,也沒有PWM,就是I/O,每個口也只有那麼一個寄存器,直接讀寫就完了。
而到了32位機就不一樣了,那麼多功能,那麼多寄存器,如果不用庫的話,就要一位一位地把每個寄存器都設好,非常麻煩。ST專門給STM32編制了一個函數庫,所有的函數庫設置你只需要調用函數庫的函數就好。如果你英語還說得過去的話,看著函數庫就可以基本不用去每一位對寄存器了,犧牲了效率,但是非常非常的方便。

至於使用起來,也非常簡單,比如你要用GPIO,你就把STM32F10X_GPIO.C加到你的工程文件中去,然後在你在程序里引用一下#include "stm32f10x.h",就可以了。當然,我覺得這么做還要一個一個文件地想,到底需要不需要,乾脆把所有的C文件都加到工程里去,然後在編譯器里打開Level-2優化,這樣沒有用到的函數都不會被編譯到最終的hex文件中去了。想用到什麼函數都可以,非常方便的。

G. 什麼是GPIO

嵌入式系統中常常有數量眾多,但是結構卻比較簡單的外部設備/電路,對這些設備/電路有的需要CPU為之提供控制手段,有的則需要被CPU用作輸入信號。而且,許多這樣的設備/電路只要求一位,即只要有開/關兩種狀態就夠了,比如燈亮與滅。對這些設備/電路的控制,使用傳統的串列口或並行口都不合適。所以在微控制器晶元上一般都會提供一個「通用可編程IO介面」,即GPIO。介面至少有兩個寄存器,即「通用IO控制寄存器」與「通用IO數據寄存器」。數據寄存器的各位都直接引到晶元外部,而對這種寄存器中每一位的作用,即每一位的信號流通方向,則可以通過控制寄存器中對應位獨立的加以設置。這樣,有無GPIO介面也就成為微控制器區別於微處理器的一個特徵。在實際的MCU中,GPIO是有多種形式的。比如,有的數據寄存器可以按照位定址,有些卻不能按照位定址,這在編程時就要區分了。比如傳統的8051系列,就區分成可位定址和不可位定址兩種寄存器。另外,為了使用的方便,很多mcu把glue logic等集成到晶元內部,增強了系統的穩定性能,比如GPIO介面除去兩個標准寄存器必須具備外,還提供上拉寄存器,可以設置IO的輸出模式是高阻,還是帶上拉的電平輸出,或者不帶上拉的電平輸出。這在電路設計中,外圍電路就可以簡化不少。另外需要注意的是,對於不同的計算機體系結構,設備可能是埠映射,也可能是內存映射的。如果系統結構支持獨立的IO地址空間,並且是埠映射,就必須使用匯編語言完成實際對設備的控制,因為C語言並沒有提供真正的「埠」的概念。如果是內存映射,那就方便的多了。GPIO優點GPIO的優點(埠擴展器)低功耗:GPIO具有更低的功率損耗(大約1μA,μC的工作電流則為100μA)。集成IIC從機介面:GPIO內置IIC從機介面,即使在待機模式下也能夠全速工作。小封裝:GPIO器件提供最小的封裝尺寸 ― 3mm x 3mm QFN!低成本:您不用為沒有使用的功能買單!快速上市:不需要編寫額外的代碼、文檔,不需要任何維護工作!靈活的燈光控制:內置多路高解析度的PWM輸出。可預先確定響應時間:縮短或確定外部事件與中斷之間的響應時間。更好的燈光效果:匹配的電流輸出確保均勻的顯示亮度。布線簡單:僅需使用2條就可以組成IIC匯流排或3條組成SPI匯流排。與ARM 的幾組GPIO引腳,功能相似,GPxCON 控制引腳功能,GPxDAT用於讀寫引腳數據。另外,GPxUP用於確定是否使用上拉電阻。

H. 嵌入式STM32編程中,讀GPIO口的數據的代碼

1,我懷疑這樣寫的用意在哪裡。兩個define 對於GPIOA的IDR寄存器是沒有任何意義的,32位的寄存器每一位該是0的是0,是1 的是1 沒有什麼變化,寄存器。如果是獲取寄存器的值是可以的。但是兩個的作用沒有什麼不同,他們寄存器的值都不會發生改變,如果實在要說區別的話,就是運算的時間和寫法的不同。
2,#define key1 (GPOIA -> IDR | 0xFFFFFFFF) //這是每一位都置位為1
#define key1 (GPIOA -> IDR | ( 1<X ) ) // x位置位為1

3, #define key1 (GPIOA -> IDR & 0X0) //每一位都清0
#define key1 (PPIOA -> IDR & (1<X)) // x位清0

熱點內容
節目腳本是什麼 發布:2025-02-08 02:08:54 瀏覽:139
android的自定義屬性 發布:2025-02-08 02:07:27 瀏覽:605
怎麼看電腦的用戶名和密碼 發布:2025-02-08 02:02:48 瀏覽:795
vb動態資料庫 發布:2025-02-08 02:01:53 瀏覽:110
一台存儲可以配幾個擴展櫃 發布:2025-02-08 01:53:22 瀏覽:566
分布式存儲技術優缺點 發布:2025-02-08 01:51:37 瀏覽:245
linuxsuse重啟 發布:2025-02-08 01:49:27 瀏覽:412
java對稱加密 發布:2025-02-08 01:48:04 瀏覽:523
java報表框架 發布:2025-02-08 01:47:59 瀏覽:930
方舟手游怎麼防止踢出伺服器 發布:2025-02-08 01:42:44 瀏覽:690