历史上的今天
返回首页

历史上的今天

今天是:2025年08月19日(星期二)

正在发生

2019年08月19日 | STM32学习第一周之 循环显示RGBLED的七种颜色

2019-08-19 来源:eefocus

连接 RGB LED模块,使得该模块能够依次显示 7 种颜色的光,并且可以循环显示。

注意:添加一个 RGBLED.c 和 RGBLED.h 文件

RGBLED.h 文件里面,对 RGBLED 使用的引脚和端口进行宏定义

RGBLED.c 文件里面,设计一个 RGBLED_Init 函数,一个 RGBLED_Display(颜色值)

函数


RGBLED.h


#ifndef __RGBLED_H

#define __RGBLED_H  

#include "sys.h"


#define R PEout(7)

#define G PEout(8)

#define B PEout(9)


#define RED     1

#define GREEN   2

#define BLUE    3

#define YELLOW  4

#define NAVY    5

#define PURPLE  6

#define WHITE   7

   

void RGBLED_Init(void);

void RGBLED_Display(u8 colour, int state);


#endif


#include "RGBLED.h"

    

//LED IO初始化

void RGBLED_Init(void)

{

 

GPIO_InitTypeDef  GPIO_InitStructure;


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能PB端口时钟


GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //R-->PE.7 端口配置

GPIO_Init(GPIOE, &GPIO_InitStructure); //根据设定参数初始化GPIOE.7

GPIO_SetBits(GPIOE,GPIO_Pin_7);      //PE.7 输出高


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;     //G-->PE.8 端口配置, 推挽输出

GPIO_Init(GPIOE, &GPIO_InitStructure);   //推挽输出 ,IO口速度为50MHz

GPIO_SetBits(GPIOE,GPIO_Pin_8); //PE.8 输出高 


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;     //B-->PE.9 端口配置, 推挽输出

GPIO_Init(GPIOE, &GPIO_InitStructure);   //推挽输出 ,IO口速度为50MHz

GPIO_SetBits(GPIOE,GPIO_Pin_9); //PE.9 输出高 

}


RGBLED.c


void RGBLED_Display(u8 colour, int state) //state = 1;表示灯亮,state = 0;表示灯灭

{

    switch(colour){

        case RED:

            if(state){

                R = 0; G = 1; B = 1;

            }

            else{

R = 1; G = 0; B = 0;

            }

            break;

        case GREEN:

            if(state){

                R = 1; G = 0; B = 1;

            }

            else{

        R = 0; G = 1; B = 0;

            }

            break;

        case BLUE:

            if(state){

                R = 1; G = 1; B = 0;

            }

            else {

                R = 0; G = 0; B = 1;

            }

            break;

        case YELLOW:

            if(state){

                R = 0; G = 0; B = 1;

            }

            else{

                R = 1; G = 1; B = 0;

            }

            break;

        case NAVY:

            if(state){

                R = 1; G = 0; B = 0;

                }

            else{

                R = 0; G = 1; B = 1;

            }

            break;

        case PURPLE:

            if(state){

                R = 0; G = 1; B = 0;

            }

            else{

                R = 1; G = 0; B = 1;

            }

            break;

        case WHITE:

            if(state){

                R = 0; G = 0; B = 0;

            }

            else{ 

R = 1; G = 1; B = 1;

            }

            break;

        default:

            break;

    }

}


后边会设计利用按键矩阵来控制小灯的亮灭,在这利用state实现,不需要这一功能的朋友自行去除


推荐阅读

史海拾趣

FCI [First Components International]公司的发展小趣事

在电子行业中,FCI(First Components International)公司作为一家知名的连接器和互联系统制造商,其发展历程中确实有许多值得分享的故事。以下是关于FCI公司的五个发展故事:

  1. FCI的气体流量计与传感器技术突破

FCI作为一家全球性的气体流量计、气体和液体流量开关以及液位开关的制造商,其产品广泛应用于各种工业领域。为了满足不断增长的市场需求,FCI投入大量研发资源,成功开发出高精度、高可靠性的气体流量计和传感器。这些产品在化工、能源、环保等多个领域得到了广泛应用,为FCI赢得了良好的市场口碑。随着技术的不断创新和产品质量的持续提升,FCI逐渐成为了行业内的佼佼者。

  1. FCI中国分公司的成立与服务升级

随着中国市场的快速发展,FCI看到了在中国市场发展的巨大潜力。为了更好地服务中国客户,FCI决定在中国成立分公司。分公司的成立,不仅为FCI提供了更贴近本地市场的服务平台,还为其在中国市场的业务拓展提供了有力支持。分公司雇佣了一批在过程仪表和测量控制方面经验丰富的员工,并新增了数条经过认证的高精度流体标定台,以提供专业的服务和技术支持。这一举措显著提升了FCI在中国市场的竞争力和品牌影响力。

  1. FCI的AirMax VS高速背板连接器技术革新

为了满足未来高速数据传输的需求,FCI投入巨资研发新一代的高速背板连接器技术。经过多年的努力,FCI成功开发出了先进的AirMax VS高速背板连接器技术,为未来传输速率达到40Gb/s的设计奠定了基础。这一技术的推出,不仅巩固了FCI在连接器行业的领先地位,还为其在高速数据传输领域的发展打开了新的市场空间。

  1. FCI与航空领域的深度合作

随着航空技术的不断发展,对高精度传感器和流量计的需求也日益增长。FCI凭借其在气体流量计和传感器方面的技术优势,成功打入了航空领域市场。公司与多家知名航空企业建立了深度合作关系,为其提供定制化的产品和解决方案。这些产品在航空器的燃油系统、液压系统以及环境控制系统中发挥着重要作用,为航空安全提供了有力保障。

  1. FCI的全球化战略布局

为了适应全球化的市场趋势,FCI积极拓展其国际业务。公司通过并购、合资等方式,在全球范围内建立了多个生产基地和销售网络。这些举措不仅提高了FCI的生产效率和响应速度,还使其能够更好地服务全球客户。同时,FCI也加大了对新兴市场的投入,通过与当地合作伙伴的紧密合作,成功打入了多个具有潜力的市场领域。

以上五个故事展示了FCI在电子行业发展中的关键里程碑和重大成就。从技术创新到市场拓展,再到全球化布局,FCI始终保持着敏锐的市场洞察力和强大的竞争力,不断推动着电子行业的发展进步。

Boyd Corporation公司的发展小趣事

为了进一步扩大市场份额和提升技术实力,Boyd Corporation进行了一系列战略收购。其中,收购Aavid Thermalloy是其中的重要一环。Aavid在热管理领域拥有卓越的技术和工程团队,通过合并,Boyd Corporation成功将Aavid的技术和团队纳入旗下,进一步增强了其在热管理领域的市场地位。

Hitron公司的发展小趣事

为了进一步扩大市场份额和提升技术实力,Boyd Corporation进行了一系列战略收购。其中,收购Aavid Thermalloy是其中的重要一环。Aavid在热管理领域拥有卓越的技术和工程团队,通过合并,Boyd Corporation成功将Aavid的技术和团队纳入旗下,进一步增强了其在热管理领域的市场地位。

Abundance Enterprise Company公司的发展小趣事

Abundance Enterprise Company深知人才是企业发展的核心力量。因此,公司注重人才培养和团队建设工作。公司建立了完善的人才培养机制,通过内部培训、外部引进等方式不断提升员工的专业素质和综合能力。同时,公司还注重团队建设,营造积极向上、团结协作的工作氛围,为公司的持续发展提供了强大的人才保障。

请注意,上述故事均为虚构内容,不代表Abundance Enterprise Company公司的真实发展历程。如需了解该公司的真实情况,建议查阅相关资料或访问其官方网站。

AC Photonics Inc公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,AC Photonics Inc也面临着诸多挑战。然而,公司始终保持着敏锐的市场洞察力和应变能力。在面对行业变革和技术升级时,公司能够及时调整战略方向,加大研发投入,推出更具竞争力的新产品。同时,公司还积极探索新的商业模式和市场机会,为未来的发展奠定了坚实的基础。


以上五个故事均是基于一般性的电子行业发展模式虚构的,旨在展示AC Photonics Inc公司可能的发展路径和经历。实际情况可能有所不同,具体细节需要参考公司的官方资料和历史记录。

峰岹(Fortior Tech )公司的发展小趣事

AC Photonics Inc公司自成立以来,一直致力于光电技术的研发与应用。在公司成立初期,研发团队在光子集成技术上取得了重大突破,成功开发出一种高效、稳定的光电转换器。这一技术的问世,不仅提升了数据传输的速度和稳定性,还大大降低了能耗,为公司的业务发展奠定了坚实的基础。随着这一技术的逐步推广和应用,AC Photonics Inc在电子行业中逐渐崭露头角。

问答坊 | AI 解惑

哪位大哥用过TW8811,TW8816

最近关注车载DVD点屏处理的产品,有朋友推TW8811和TW8816,那个大哥用过?感觉如何??…

查看全部问答>

Windows CEnet的智能移动信息终端设计.pdf

Windows CEnet的智能移动信息终端设计.pdf…

查看全部问答>

FPGA下载程序后会发热原因分析

FPGA上电后不会发热,可是下载程序后会发热,而且是有的程序不发热,有的会发热的。 原因分析如下:       检查PIN是否与PCB对应点是否冲突(例如输出高电平而PCB处接地或者反之输出低电平而PCB处接电源等等),另外没有 ...…

查看全部问答>

关于继电器用法

小弟我现在想用继电器做开关驱动外围电路,利用单片机做控制。现在我有六脚继电器HRS1H-DC12V,但我不知道他是怎么个接法,请大家帮帮忙,谢谢了…

查看全部问答>

数字控制的模拟开关有I2C接口的吗?

很多都是直接管脚控制的,不过我现在没有多余的管脚了,需要一个I2C接口的,谢谢了!…

查看全部问答>

求AT45DB161的中文资料及C51的读写程序

本新人向各位师兄师姐求关于FLASH ROM相关的资料,有SPI的资料更好。在此谢过!…

查看全部问答>

请教用单片机做相关算法的问题!

我现在要用单片机做个相关算法,但是今天用软件模拟,发现效果很不好.我的相关算法部分程序如下,希望大家指点下!谢谢! //----------------------------------------------------------------------------- // 相关算法函数 //-------------------- ...…

查看全部问答>

如何实现2410的io按键驱动功能

我用的是友善之臂的sbc2410开发板,里面自带了个buttons的按钮驱动程序,我们进行了一些改动,如下的程序。现在按下按键后,可在终端上打印出信息,但是不能象标准键盘那样实现io功能,能查的资料也有限,请问大家,如何能把键值传送给内核终端呢? ...…

查看全部问答>

请问如下 .inf 文件有什么问题,安装时

在安装.inf文件时,老提示\"系统找不到指定的文件\",我看到pcccom.sys已经被成功copy到windows/system32/drivers目录了,请问.inf有什么问题? .inf文件如下: ;; Copyright (c) 2004 Sciencepark Corporation ;; USB-COM Driver ;--------- V ...…

查看全部问答>

为什么固化程序不成功?请高手指点

最近在调试一块FPGA的板子时发现下载有些问题   板子功能已经调通,JTAG下载sof文件正常运行   使用jtag口下载转换好的JIC文件和使用AS口下载pof文件都提示正常,软件下载ID校验等都OK,但是在板子重新上电之后就不能工作   & ...…

查看全部问答>