一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的GPIO輸出編程實(shí)例之點(diǎn)亮三色LED

2oON_changxuemc ? 2018-02-07 11:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述:

1、發(fā)光二極管簡(jiǎn)介

發(fā)光二極管是半導(dǎo)體二極管的一種,可以把電能轉(zhuǎn)化為光能,常簡(jiǎn)寫(xiě)為LED。常用的是發(fā)紅光、綠光或黃光的二極管。發(fā)光二極管的反向擊穿電壓約為5V。它的正向伏安特性曲線(xiàn)很陡,使用時(shí)必須串聯(lián)限流電阻以控制通過(guò)管子的電流。限流電阻R可用下式計(jì)算:

R = (E - UF)/IF

式中E為電源電壓,UF為L(zhǎng)ED的正向壓降,IF為L(zhǎng)ED的一般工作電流。LED廣泛應(yīng)用于各種電子電路、家電、儀表等設(shè)備中,做電源或電平指示。

2、STM32 GPIO簡(jiǎn)介

STM32F4每組通用I/O 端口包括4 個(gè)32 位配置寄存器(MODER、OTYPER、OSPEEDR 和PUPDR)、2 個(gè)32 位數(shù)據(jù)寄存器(IDR 和ODR)、1 個(gè)32 位置位/復(fù)位寄存器(BSRR)、1 個(gè)32 位鎖定寄存器(LCKR) 和2 個(gè)32 位復(fù)用功能選擇寄存器(AFRH 和AFRL)等。

GPIO可以配置成以下8種工作模式:

浮空輸入:此端口在默認(rèn)情況下什么都不接,呈高阻態(tài),這種設(shè)置在數(shù)據(jù)傳輸時(shí)用的比較多。 上拉輸入:上拉輸入模式與浮空輸入模式相比,僅僅是在數(shù)據(jù)通道上部,接入了一個(gè)上拉電阻,這個(gè)上拉電阻的阻值介于30K~50K歐姆,CPU可以隨時(shí)在輸入數(shù)據(jù)寄存器的另一端,讀出I/O端口的電平狀態(tài)。這種模式的好處在于我們什么都不輸入時(shí),由于內(nèi)部上拉電阻的原因,處理器會(huì)覺(jué)得我們輸入了高電平,這就避免了不確定的輸入。該端口在默認(rèn)情況下輸入為高電平。 模擬功能:STM32的模擬輸入通道的配置很簡(jiǎn)單,信號(hào)從I/O端口直接進(jìn)入ADC模塊。此時(shí),所有的上拉、下拉電阻和施密特觸發(fā)器,均處于斷開(kāi)狀態(tài),因此輸入數(shù)據(jù)寄存器將不能反映端口上的電平狀態(tài),也就是說(shuō),模擬輸入配置下,信號(hào)不經(jīng)過(guò)輸入數(shù)據(jù)寄存器,CPU不能在輸入數(shù)據(jù)寄存器上讀到有效的數(shù)據(jù)。該輸入模式,使我們可以獲得外部的模擬信號(hào) 開(kāi)漏輸出:開(kāi)漏輸出不可以直接輸出高電平,開(kāi)漏輸出的輸出端相當(dāng)于三極管的集電極,要得到高電平狀態(tài)需要上拉電阻才行。 開(kāi)漏復(fù)用輸出:GPIO的基本功能是普通的I/O,而STM32有自己的各個(gè)功能模塊,這些內(nèi)置外設(shè)的引腳是與標(biāo)準(zhǔn)GPIO復(fù)用的,當(dāng)作為這些模塊的功能引腳時(shí)就叫復(fù)用。開(kāi)漏復(fù)用輸出功能模式與開(kāi)漏輸出模式相比,不同的是輸出控制電路的輸入,是和片上外設(shè)的輸出信號(hào)相連即與復(fù)用功能的輸出端相連,此時(shí),輸出數(shù)據(jù)寄存器在輸出通道被斷開(kāi)。 推挽復(fù)用輸出:推挽復(fù)用輸出功能模式與推挽輸出模式相比,不同的是輸出控制電路的輸入,是和片上外設(shè)的輸出信號(hào)相連,即與復(fù)用功能的輸出端相連,而輸出數(shù)據(jù)寄存器在輸出通道被斷開(kāi)。

二、硬件電路:

在iCore3雙核心開(kāi)發(fā)板中,采用一個(gè)獨(dú)立的紅綠藍(lán)三色LED與STM32F407相連,限流電阻為1K。其中,紅色LED與PI5引腳相連,綠色LED與PI6引腳相連,藍(lán)色LED與PI7引腳相連。

STM32的GPIO輸出編程實(shí)例之點(diǎn)亮三色LED

三、實(shí)驗(yàn)原理:

本實(shí)驗(yàn)通過(guò)STM32的三個(gè)GPIO口驅(qū)動(dòng)三色LED的三個(gè)通道,將GPIO設(shè)置為推挽輸出模式,采用灌電流的方式與LED連接,GPIO輸出高電平LED熄滅,GPIO輸出低電平LED點(diǎn)亮,通過(guò)控制GPIO輸出的電平高低從而控制LED的亮滅。

四、源代碼:

1、主函數(shù)

/*

* Name : main

* Description : ---

* Author : ysloveivy.

*

* History

* --------------------

* Rev : 0.00

* Date : 11/21/2015

*

* create.

* --------------------

*/

int main(void)

{

int i;

led.initialize();

//三色LED交替閃爍

while(1){

LED_RED_ON;

LED_GREEN_OFF;

LED_BLUE_OFF;

for(i = 0;i < 10000000;i++);

LED_RED_OFF;

LED_GREEN_ON;

LED_BLUE_OFF;

for(i = 0;i < 10000000;i++);

LED_RED_OFF;

LED_GREEN_OFF;

LED_BLUE_ON;

for(i = 0;i < 10000000;i++);

}

}

2、GPIO初始化

* Name : initialize

* Description : ---

* Author : ysloveivy.

*

* History

* --------------------

* Rev : 0.00

* Date : 11/21/2015

*

* create.

* --------------------

*/

static int initialize(void)

{

GPIO_InitTypeDef GPIO_uInitStructure;

//LED IO初始化

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOI,ENABLE);

GPIO_uInitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; //初始化連接三色LED燈的IO端口

GPIO_uInitStructure.GPIO_Mode = GPIO_Mode_OUT; //設(shè)置端口為輸出模式

GPIO_uInitStructure.GPIO_OType = GPIO_OType_PP; //設(shè)置輸出類(lèi)型為推挽輸出模式

GPIO_uInitStructure.GPIO_PuPd = GPIO_PuPd_UP; //上拉輸出

GPIO_uInitStructure.GPIO_Speed = GPIO_Speed_100MHz; //設(shè)置速度等級(jí)

GPIO_Init(GPIOI,&GPIO_uInitStructure);

//PI5、PI6、PI7、接三色LED燈,置高電平,燈熄滅

GPIO_SetBits(GPIOI,GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7);

return 0;

}

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef*GPIO_InitStruct)

這個(gè)函數(shù)兩個(gè)參數(shù),第一個(gè)參數(shù)是用來(lái)指定需要初始化的GPIO對(duì)應(yīng)的GPIO組,取值范圍為GPIOA~GPIOK。第二個(gè)參數(shù)為初始化參數(shù)結(jié)構(gòu)體指針,結(jié)構(gòu)體類(lèi)型為GPIO_InitTypeDef。

結(jié)構(gòu)體定義為

typedef struct{

uint32_t GPIO_Pin; //設(shè)置IO端口

GPIOMode_TypeDef GPIO_Mode; //設(shè)置端口工作模式

GPIOSpeed_TypeDef GPIO_Speed; //設(shè)置端口的速度等級(jí)

GPIOOType_TypeDef GPIO_OType; //設(shè)置端口的類(lèi)型

GPIOPuPd_TypeDef GPIO_PuPd; //設(shè)置上下拉

}GPIO_InitTypeDef;

五、實(shí)驗(yàn)現(xiàn)象:

iCore3雙核心板上與ARM相連的三色LED(PCB上標(biāo)示為ARM·LED),紅色、綠色、藍(lán)色交替點(diǎn)亮。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23847

    瀏覽量

    674190
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    365031
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1280

    瀏覽量

    54120

原文標(biāo)題:STM32學(xué)習(xí)1:GPIO輸出實(shí)驗(yàn)——點(diǎn)亮三色LED

文章出處:【微信號(hào):changxuemcu,微信公眾號(hào):暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    三色發(fā)光二極管原理圖 led三色調(diào)光的概念

    三色LED由兩個(gè)不同顏色的管芯組成,有共陽(yáng)、共陰接法,故為散引腳。當(dāng)兩個(gè)管芯各自亮?xí)r呈現(xiàn)兩,當(dāng)兩個(gè)管芯一起亮?xí)r則為混,所以稱(chēng)為三色
    發(fā)表于 08-27 08:58 ?6.5w次閱讀
    <b class='flag-5'>三色</b>發(fā)光二極管原理圖 <b class='flag-5'>led</b><b class='flag-5'>三色</b>調(diào)光的概念

    三色LED顯示

    這是一個(gè)三色LED顯示的設(shè)計(jì),是大型LED巨屏的基礎(chǔ)
    發(fā)表于 03-28 22:33

    【LeMaker Guitar試用體驗(yàn)】7.GPIO方式操作板載三色LED

    本帖最后由 xble 于 2016-2-11 12:01 編輯 前面我們通過(guò)操作GPIO來(lái)控制外接LED燈,其實(shí)guitar的底板上也有三色燈,系統(tǒng)啟動(dòng)后紅燈和綠燈都會(huì)閃爍。我們先來(lái)
    發(fā)表于 02-11 12:01

    自己制作的三色LED仿真模型

    閑著沒(méi)事,自己想做一個(gè)led全彩屏模型,但是想來(lái)想去,還是無(wú)從下手,想了一下,要想做全彩屏模型,首先要把單個(gè)LED三色做出來(lái),了解其原理,才能做復(fù)雜的LED全彩屏模型?;艘粋€(gè)下午時(shí)間
    發(fā)表于 12-10 18:13

    【零基礎(chǔ)學(xué)習(xí)STM32】第一講:GPIO輸出實(shí)驗(yàn)——點(diǎn)亮三色LED

    引腳相連,藍(lán)色LED與PI7引腳相連。、實(shí)驗(yàn)原理:本實(shí)驗(yàn)通過(guò)STM32個(gè)GPIO口驅(qū)動(dòng)三色
    發(fā)表于 01-24 13:38

    STM32固件庫(kù)編程GPIO如何點(diǎn)亮LED

    STM32固件庫(kù)編程GPIO如何點(diǎn)亮LED
    發(fā)表于 10-13 09:37

    【Station M2 娛樂(lè)·極客主機(jī)試用體驗(yàn)】用Station M2主機(jī)做開(kāi)發(fā),點(diǎn)個(gè)三色LED跑馬燈玩玩

    此時(shí),你就會(huì)看到,LED點(diǎn)亮。如果是三色LED,那么紅色將被點(diǎn)亮。再寫(xiě)入0輸出低電平:echo
    發(fā)表于 12-26 23:13

    三色RGB LED模塊學(xué)習(xí)筆記

    作者:GWD 時(shí)間:2019.06.28三色RGB學(xué)習(xí)筆記(開(kāi)關(guān)量類(lèi)傳感器)一、學(xué)習(xí)要點(diǎn):無(wú)二、手冊(cè)分析(開(kāi)關(guān)量傳感器)1、產(chǎn)品用途:RGB LED 模塊由一個(gè)貼片全彩 LED 制成,通過(guò) R、G
    發(fā)表于 01-06 07:38

    用Stduino可以對(duì)三色LED模塊進(jìn)行控制

    *37種傳感器(一)3LED模塊+Stduino Nano&UNO*本文轉(zhuǎn)載自: 鍵詞:51、stm32、arduino、stduino、單片機(jī)、stduino UNO&Nano
    發(fā)表于 01-17 06:13

    三色LED顯示屏的設(shè)計(jì)與實(shí)現(xiàn)

    本文給出基于單片機(jī)系統(tǒng)的16×15 三色LED 點(diǎn)陣雙顯示屏設(shè)計(jì)方案,采用動(dòng)態(tài)顯示原理,配合優(yōu)化的程序設(shè)計(jì),在動(dòng)態(tài)掃描方式下,得到較高刷新速率、畫(huà)面清晰的三色顯示效果。
    發(fā)表于 10-27 16:26 ?164次下載
    <b class='flag-5'>三色</b><b class='flag-5'>LED</b>顯示屏的設(shè)計(jì)與實(shí)現(xiàn)

    51控制的三色led

    1控制三色LED燈的顏色逐級(jí)變化; 2可以用按鍵輸入變化時(shí)間; 3lcd1602顯示變化時(shí)間和顏色變化順序。
    發(fā)表于 05-13 15:07 ?49次下載

    RGB三色直方圖的繪制

    《OpenCV3編程入門(mén)》書(shū)本配套源代碼:RGB三色直方圖的繪制
    發(fā)表于 06-06 15:20 ?17次下載

    OpenCV3編程入門(mén)-源碼例程全集-RGB三色直方圖的繪制

    OpenCV3編程入門(mén)-源碼例程全集-RGB三色直方圖的繪制
    發(fā)表于 09-18 16:38 ?0次下載

    STM32 GPIO輸出實(shí)驗(yàn)——點(diǎn)亮三色LED資料下載

    電子發(fā)燒友網(wǎng)為你提供STM32 GPIO輸出實(shí)驗(yàn)——點(diǎn)亮三色LED資料下載的電子資料下載,更有其
    發(fā)表于 04-21 08:46 ?14次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b><b class='flag-5'>輸出</b>實(shí)驗(yàn)——<b class='flag-5'>點(diǎn)亮</b><b class='flag-5'>三色</b><b class='flag-5'>LED</b>資料下載

    使用樹(shù)莓派GPIO點(diǎn)亮LED

    上一篇文章向大家介紹樹(shù)莓派的硬件部分、安裝操作系統(tǒng)及基礎(chǔ)設(shè)置。這篇文章將介紹樹(shù)莓派的強(qiáng)大的開(kāi)發(fā)功能口——GPIO,以及利用GPIO點(diǎn)亮LED
    的頭像 發(fā)表于 07-04 11:34 ?3241次閱讀
    使用樹(shù)莓派<b class='flag-5'>GPIO</b>口<b class='flag-5'>點(diǎn)亮</b>雙<b class='flag-5'>色</b><b class='flag-5'>LED</b>燈