历史上的今天
返回首页

历史上的今天

今天是:2024年08月31日(星期六)

2020年08月31日 | STM32-点亮LED灯(GPIO配置)

2020-08-31 来源:eefocus

点亮LED灯应该是每一人学习硬件的第一个实验了吧!从51到32在到ARM,废话少说,下面开始使用STM32点亮LED灯。


GPIO:又叫通用输入输出口,是微控制器必不可少的外设单元,用来和外界进行信号传递,数据交互的接口。


STM32的GPIO根据型号的不同分为A-H组,每一组都称为GPIOx组,每组都有独立的寄存器,因为相对于寄存器,函数版的使用还是比较容易入门的,尤其是有些编程基础的人来讲,但是寄存器是不可以忽视的,学会了基础的函数操作还是要回头去看看具体寄存器是如何运行的,这点很重要,高手和菜鸟的区别吧!


STM32的GPIO还具有十分强大复用功能,这点以后会介绍和使用到。现在就把它的GPIO当成一个可输出高低电平的引脚就可以了。


首先,看一下相关的寄存器,先了解既可。
这里写图片描述
在看一关于GPIO的所有方法。
这里写图片描述
其中在第一个实验中用到的函数,也就几个,比如GPIO_Init()用来初始化IO口,GPIO_SetBits(),GPIO_ResetBits(),用来置位和复位IO口的电平。GPIO_WriteBits(),和GPIO_Write()也可以用来改变GPIO的电平,具体的差别就要去看手册是了解了。

#include "stm32f10x.h"

/**

  * @brief  ³õʼ»¯GPIO£¬Ä¬ÈÏËÙ¶ÈΪGPIO_Speed_50MHz;

  *         

  * @param  GPIO·Ö×é

  * @param  GPIOÒý½Å

    * @param  GPIOÒý½Åģʽ

  * @retval None

  */

void GPIO_init(GPIO_TypeDef * GPIOx,u16 GPIO_Pin,GPIOMode_TypeDef Mode)

{

    GPIO_InitTypeDef GPIO_InitStruct;                                       

    GPIO_InitStruct.GPIO_Mode=Mode;                         

    GPIO_InitStruct.GPIO_Pin=GPIO_Pin;

    GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;

    GPIO_Init(GPIOx,&GPIO_InitStruct);

}


int main()

{


        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

        GPIO_init(GPIOA,GPIO_Pin_0,GPIO_Mode_Out_PP);

        GPIO_ResetBits(GPIOA,GPIO_Pin_0);

        while(1);

}


以上代码是将GPIOA0引脚设置为低电平。


推荐阅读

史海拾趣

Agere System(LSI Logic)公司的发展小趣事

Agere Systems(后来被LSI Logic收购)是一家在半导体行业具有重要影响力的公司之一。以下是该公司发展的五个相关故事:

  1. 公司成立和发展:Agere Systems成立于2000年,是由Lucent Technologies的微电子部门分拆而成。公司总部位于美国新泽西州的默里斯敦市。Agere Systems专注于开发半导体解决方案,包括通信芯片、存储芯片和无线网络技术。通过不断的技术创新和市场拓展,Agere Systems在短时间内成为半导体行业的领军企业之一。

  2. 无线通信技术:Agere Systems在无线通信技术方面取得了重大突破,推动了移动通信产业的发展。该公司开发了一系列的基带处理器和射频芯片,用于手机和其他移动设备中的无线通信。这些技术的应用使得移动通信设备具有更高的性能、更低的功耗和更广泛的覆盖范围,促进了全球移动通信市场的快速增长。

  3. 存储解决方案:除了在通信领域取得成功外,Agere Systems还致力于开发先进的存储解决方案。该公司生产的存储芯片和控制器广泛应用于硬盘驱动器、固态硬盘和存储系统中,为数据存储和处理提供了关键的技术支持。Agere Systems的存储产品以其高速、高效和可靠性而闻名,成为许多数据中心和企业用户的首选。

  4. 公司并购与重组:在Agere Systems发展的过程中,该公司进行了多次并购和重组以加强自身实力和市场竞争力。2007年,LSI Logic公司宣布收购Agere Systems,将两家公司的技术和资源整合在一起,共同致力于推动半导体行业的发展。通过这一合并,LSI Logic扩大了其在存储和通信领域的市场份额,进一步巩固了在全球半导体市场的领导地位。

  5. 技术创新与发展:Agere Systems始终把技术创新作为公司发展的核心驱动力。该公司投入大量资源用于研发,并与全球各地的科研机构和合作伙伴进行紧密合作。Agere Systems持续推出高性能、低功耗的芯片产品,并不断改进现有产品的性能和功能,以满足客户不断增长的需求。通过持续的技术创新和产品优化,Agere Systems在半导体行业保持了竞争优势,并为客户提供了更加先进和可靠的解决方案。

Dolphin Interconnect Solutions Asa公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,Dolphin Interconnect Solutions ASA面临着前所未有的挑战。为了应对这些挑战,公司积极调整战略方向,加大在人工智能、物联网等新兴领域的投入。同时,Dolphin还加强了与产业链上下游企业的合作,共同推动产业链的转型升级。这些努力使得Dolphin在激烈的市场竞争中保持了稳健的发展态势。

FUJI公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,Dolphin Interconnect Solutions ASA面临着前所未有的挑战。为了应对这些挑战,公司积极调整战略方向,加大在人工智能、物联网等新兴领域的投入。同时,Dolphin还加强了与产业链上下游企业的合作,共同推动产业链的转型升级。这些努力使得Dolphin在激烈的市场竞争中保持了稳健的发展态势。

ACI [Applied Concepts, Inc.]公司的发展小趣事

为了进一步提升市场影响力,ACI公司积极寻求与其他行业领导者的战略合作。通过与知名电子产品制造商、芯片供应商等建立紧密的合作关系,ACI得以获取更优质的资源和技术支持。这些合作不仅提升了ACI的产品质量和技术水平,还扩大了公司的市场影响力,为公司的长远发展奠定了坚实基础。

BusBoard公司的发展小趣事

在竞争激烈的电子行业,技术创新是企业生存发展的关键。BusBoard公司深知这一点,因此不断加大研发投入,引进高端人才,推动技术创新。一次偶然的机会,公司研发团队发现了一种新型材料,可以显著提高电路板的性能和稳定性。经过反复试验和优化,这一技术突破最终转化为实际产品,并成功推向市场。这一创新不仅提升了BusBoard公司的竞争力,也为客户带来了更优质的产品体验。

Conflux公司的发展小趣事

随着公司业务的不断发展,Conflux开始寻求与其他电子行业企业的合作。通过与智能手机制造商的合作,Conflux成功将其区块链技术集成到了手机支付应用中,为用户提供了更加便捷、安全的支付体验。此外,Conflux还与多家电商平台达成战略合作,利用区块链技术优化交易流程,提高交易透明度。这些合作不仅拓展了Conflux的市场份额,也进一步提升了其在电子行业的影响力。

问答坊 | AI 解惑

體積細小、新增3款顏色選擇 MyGica D689數碼電視接收捧

現時數碼電視接收捧發展十分純熟,市場上各品牌的競爭激烈,光靠接收捧效能已很難分勝負,因此 MyGica 改從外型入手,推出號稱體積最細小的高畫數碼電視接收捧 D689 ,而且更備有五種鮮艷色彩選擇,其中香檳金、閃粉紅、夢幻紫 3 款更是市場上少有 ...…

查看全部问答>

保险丝熔断自愈电路

    该装置的电路工作原理见图6。当保险丝FU1完好时,氖泡ND被短路不亮,同时LSE的①、②脚串通,此时LSE的④脚输出高电平,三极管VT截止,单向可控硅VS无触发电流不工作,继电器J无电流不吸合。一旦FU1熔断,相当于LSE的①、②脚回路 ...…

查看全部问答>

我的中断响应时间正常吗?

从ISR第一条指令,到中断线程IST响应的第一条指令(设置一个IO输出),花了1.4ms。看论坛里面有朋友测试过说只要 400us。这样说来我的中断响应速度是不是慢了。我用的是2440主频400M。同一时间因该也没有其它中断响应,导致阻塞。有没有优化中断线 ...…

查看全部问答>

wince智能设备开发中的问题

.net 在wince智能设备开发中     如何在datagrid中加一列checkbox…

查看全部问答>

自己wince开发的学习曲线

介绍给大家自己的一个学习曲线,希望对初学者有些帮助,先声明我很菜鸟,提供建议做参考, 我几乎是按照如下顺序学习的, 1:首先C/C++开发语言,(大学期间也学习了java,vb和汇编),VC++,EVC++,VS2005等工具,面向对象分析与设计,window编程 ...…

查看全部问答>

如何在wince5.0下设置目标机器的分辨率

在wince5.0下,如何设置目标机器的分辨率。请高手指教。谢谢!…

查看全部问答>

[求助]16c745有没有flash版本

16c745,16C是OTP的,初次开发很不方便。16c745的flash版本就是16F745?…

查看全部问答>

求助:F2810 GPIO输入问题

F2810 的引脚CAP1_QEP1、CAP2_QEP2、CAP3_QEPI1作为GPIO信号输入端,我设置了:     GpioMuxRegs.GPAMUX.all = 0x00;       GpioMuxRegs.GPADIR.all = 0xFF00;       GpioMuxRegs.GPAQUAL.al ...…

查看全部问答>

verilog中负数的表示

     最近遇到一个问题,就是,如果一个寄存器减去另一个寄存器是负数,那么差值赋值到寄存器后,该如何表示呢? 做了一个仿真,测试了一下: reg [3:0] test_reg; always @(posedge SysClk or& ...…

查看全部问答>

选择吉时利2200系列电源的五大理由

  理由一:优异的输出和测量分辨率,适合低功率测试 吉时利全新2200系列电源,提供高性能、多功能和易用性的最佳组合,输出电压范围:20V~72V。 型号 描述 2200-20-5型 20V 5A 100W 2200-30-5型 30V ...…

查看全部问答>