历史上的今天
返回首页

历史上的今天

今天是:2024年09月06日(星期五)

正在发生

2018年09月06日 | STM32中对GPIO的配置与使用

2018-09-06 来源:eefocus

其实学习单片机最先熟悉的无非就是I/O口的操作。STM32的GPIO也好理解,就8种模式。了解什么功能使用什么模式,怎么配置就可以了。废话不多说,了解一下GPIO口吧。学习时大家应该都有资料,我就不多贴资料了,下图是GPIO(STM32F10x)的电路图。(51的I/O口不需要配置,电平输送不但简单,而且不能像GPIO集成各种协议一起使用,如SPI,SPI协议后面也会介绍)

我大致将配置模式介绍一下,并将使用该模式的功能也对应一下

输入模式:(相对MCU)

1. 浮空--外部输入何种电平,该引脚就是何种电平。       结构体模式配置:GPIO_Mode_IN_FLOATING    

2.上拉--顾名思义,接VDD的开关开启,接上上拉电阻。   结构体模式配置:GPIO_Mode_IPU    (在我的开发板上,key1,key2,key3外接GND, 所以这里使用上拉,红外接收也使用到)

3.下拉--接VSS的开关开启,接上下拉电阻。    结构体模式配置:GPIO_Mode_IPD                          (而key_up外接3.3V,所以这里用下拉)

4.模拟输入--IO端口的数据直接进入ADC模块。  结构体模式配置:GPIO_Mode_AIN                    (DAC,ADC数据采集就要用到)

输出模式:(相对MCU)

1.开漏输出:MCU可以向IO端口写“0”。写“1”时由外部电路决定,例如上拉则为1,下拉则为0.  输入寄存器可以读取IO端口的电平值。  结构体模式配置:GPIO_Mode_Out_OD

2.开漏复用:与开漏输出差不多,由MCU控制转由外设模块控制而已。 结构体模式配置:GPIO_Mode_AF_OD

3.推挽式输出:MCU向I/O端口可写“0”写“1”。类似51的IO操作。使用较多 。  结构体模式配置:GPIO_Mode_Out_PP  (对于直接连接的就用这个了,数码管,蜂鸣器等)

4.推挽式复用功能:  向I/O端口写“0”写“1”的 功能交给外设模块而已。使用也多。 结构体配置:GPIo_Mode_AF_PP  (PWM,UASRT,TFT,SPI,DMA..使用外设都要使用)

void LED_Init()    
{
GPIO_InitTypeDef GPIO_InitStructure;         /* 配置GPIO的结构体*/

SystemInit();     
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);   

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_ALL;                 
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
GPIO_Init(GPIOC,&GPIO_InitStructure);              //这是点亮外接IO的LED的一个配置,故使用推挽输出    
}

其他内容会贴在博客上,回顾一下


推荐阅读

史海拾趣

博通集成(BEKEN)公司的发展小趣事

博通集成自成立以来,始终致力于无线通讯技术的研发与创新。公司团队不断攻克技术难关,推出了多款具有市场竞争力的产品。其中,公司自主研发的首款Wi-Fi宽带收发样片在2015年成功通过测试,这一技术突破为公司在无线通讯领域的发展奠定了坚实基础。此后,公司不断推出创新产品,涵盖无线数传芯片和无线音频芯片等多个领域,广泛应用于智能家居、智能交通等领域。

Eagle Plastic Devices公司的发展小趣事

为了保持技术领先地位和满足不断变化的市场需求,Eagle Plastic Devices公司不断加大研发投入,引进先进的研发设备和人才。公司建立了完善的研发体系,包括新产品开发、工艺改进、性能测试等环节。通过不断的技术创新和产品升级,Eagle Plastic Devices公司成功推出了多款具有竞争力的新产品,进一步巩固了其在行业内的领先地位。

Barnbrook Systems Limited公司的发展小趣事

随着全球环保意识的不断提高,Barnbrook也积极响应可持续发展的号召。公司在生产过程中采用环保材料和技术,努力降低对环境的影响。同时,Barnbrook还关注未来科技的发展趋势,积极投入研发资源,探索新的技术应用和市场机会。展望未来,Barnbrook将继续致力于技术创新和可持续发展,为电子行业的进步做出更大的贡献。

以上五个故事基于电子行业常见的发展路径和策略,虚构了Barnbrook Systems Limited公司的发展历程。虽然这些故事并非基于真实事件,但它们反映了电子行业中许多公司的典型发展轨迹和面临的挑战。在实际应用中,如果需要了解特定公司的真实发展情况,建议查阅相关资料或进行深入研究。

Habia Cable公司的发展小趣事

随着技术的不断进步,Barnbrook意识到单一的电路板产品已经无法满足市场的多元化需求。于是,公司开始拓展产品线,逐步推出了包括服务器、存储设备以及网络设备在内的一系列电子产品。同时,Barnbrook也积极开拓国内外市场,通过参加国际电子展会、建立销售网络等方式,不断提升品牌知名度和市场份额。

DAICO公司的发展小趣事

随着业务的不断发展,DAICO公司开始拓展全球市场。公司在全球范围内设立了多个办事处和生产基地,以便更好地服务客户。同时,DAICO还积极寻求与全球合作伙伴的合作共赢,共同推动电子行业的发展。通过与合作伙伴的紧密合作,DAICO在技术研发、市场开拓等方面取得了更加显著的成果。

Chauvin Arnoux公司的发展小趣事

在1905年,Chauvin Arnoux公司推出了带有曲柄电感的欧姆表,这一创新为电气测量领域带来了突破性的进展。随后,在1923年,公司进一步发展了这一技术,使得欧姆表的测量不再受到曲柄速度的影响,大大提高了测量的准确性和稳定性。这一系列的创新使得Chauvin Arnoux在电气测量领域确立了领先地位,为后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

关于GetModuleFileName一直返回NULL的问题

下面这个函数目的是获取当前运行的应用程序的目录,但使用GetModuleFileName返回的总是0.不知道为何。 bool GetCurrentPath(LPTSTR szPath)   {           HMODULE handle = GetModuleHandle(NULL); &nbs ...…

查看全部问答>

请教两个问题

1、Ndis库没有向nids微端口驱动的接口函数(如初始化函数等)下发irp,那代码中的irp是从哪里来的?ndis微端口驱动自己组建的吗? 2、如何看到ndis微端口驱动中irp中包含的是什么板侧的指令?如断链指令…

查看全部问答>

关于驱动开发的就业前景,待遇

我,大二的小童鞋,软件工程 这个暑假打算在实验室好好研究一下驱动程序的开发,以后也想在这一块发展 不知目前搞驱动开发的就业如何,待遇咋样,过来人帮忙给分析一下下 小弟这里多谢了…

查看全部问答>

3G工程师成为大学毕业生择业首选

中国3G时代即将到来,社会对3G嵌入式软件人才的渴求使3G人才已经成为业界关注“3G软环境”的焦点之一。目前,我国的3G核心人才仅有不足万人,而且基本上都被几大运营商和设备厂商所掌握。广大手持端设备制造商所急需的嵌入式开发人才、软件开发商所 ...…

查看全部问答>

大家在做网络设计时候一般是用哪款工具来调试网络程序的?

准备用44b0来学习网络通讯软件编程序. 好像有一款工具是专门探测电脑网络数据.就象Bus Hound看USB数据一样. 但不记得这款软件的名称. 大家在做网络设计时候一般是用哪款工具来调试网络程序的?…

查看全部问答>

大虾们推荐一本关于制版方面经典的书呗?

不是那种进阶版的;就是普通的入门提高级的。讲解环境最好是DXP,或者往上版本的。谢过了。…

查看全部问答>

现在还有人用UPSD么?

                                  …

查看全部问答>

STM32中CRC模块的CRC_IDR寄存器作什么用?

                                 CRC_IDR寄存器不知道有什么用处?…

查看全部问答>

STM8勘误表去那找,谢谢(最好直接给出链接)

                                 RT…

查看全部问答>