历史上的今天
返回首页

历史上的今天

今天是:2025年06月12日(星期四)

正在发生

2020年06月12日 | STM32学习笔记(一)---GPIO口的操作

2020-06-12 来源:eefocus

1.新建一个工程模板


2.GPIO口操作的步骤

(1)声明一个结构体 GPIO_InitTypeDef GPIO_InitStructure;

这个结构体中包括GPIO_Pin 、GPIO_Mode、GPIO_Speed 。


(2)端口使能: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);

调用上述函数,函数参数第一个是你要使能端口,第二个是ENABLE,就是使能。如果其中用到几个端口,在第一个参数中

用或运算“|”连接,就可以同时声明几个端口。


(3) GPIO_InitStructure.GPIO_Pin 端口配置,就是你要用哪个IO口

GPIO_InitStructure.GPIO_Mode 模式设置,表明IO口的功能是什么,在STM32中IO口有8种模式

GPIO_InitStructure.GPIO_Speed IO口速度设置,在STM32中IO口有3中速度

注: IO口的八种模式:1、输入浮空 2、输入上拉 3、输入下拉 4、模拟输入 5、开漏输出 6、推挽输出 7、推挽式复用功能 8、开漏复用功能

IO口的三种速度:10MHZ、2MHZ、50MHZ


(4)根据设定参数初始化GPIO口 GPIO_Init(GPIOA, &GPIO_InitStructure);


5、IO的高低电平操作

GPIO_SetBits 寄存器:BSRR

GPIO_ResetBits 寄存器:BRR


GPIO_WriteBit 寄存器:BSRR BRR

GPIO_Write 寄存器:ODR

这两个调用的寄存器不同,功能也不同。区别在于

void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 置高

void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 置低


void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);

void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);


前者是直接对IO进行操作,而后者的输入是对整个IO口,如PA口进行操作,你要那位高就在那位置“1”,所以第二组函数的第三个参数应该为一个十六进制的数。


一般情况下使用使用第一组比较方便。


void LED_init(void)

{

    GPIO_InitTypeDef  GPIO_InitStructure;



    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE);  


    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_4|GPIO_Pin_6;              

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        


    GPIO_Init(GPIOA, &GPIO_InitStructure);  


    GPIO_SetBits(GPIOA,GPIO_Pin_2); 

    GPIO_SetBits(GPIOA,GPIO_Pin_4); 

    GPIO_SetBits(GPIOA,GPIO_Pin_6); 

}

推荐阅读

史海拾趣

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

在技术创新的基础上,Dongguan City Niuhang Electronics Co.LTD开始积极拓展市场。公司先后在安徽省池州市、江苏省扬州市和宿迁市等地设立生产基地,形成了覆盖全国的销售网络。同时,公司还加强品牌建设,通过参加行业展会、举办技术研讨会等方式,提升品牌知名度和影响力。随着市场的不断扩大,公司的销售业绩也实现了快速增长。

千志电子(CCO)公司的发展小趣事

千志电子一直注重技术研发和创新,不断推动产业升级。公司拥有一支专业的研发团队和先进的研发设备,致力于电阻技术的研发和创新。通过与高校和科研机构的合作,千志电子不断引进新技术、新工艺和新材料,提高产品的技术含量和附加值。同时,千志电子还注重知识产权的保护和管理,积极申请专利和注册商标,维护了自身的合法权益。

Daniel Woodhead公司的发展小趣事

随着公司业务的不断拓展,Daniel Woodhead公司意识到人才是企业发展的核心。因此,公司加大了对研发团队的投入,引进了一批业界顶尖的技术人才。这些人才的加入不仅为公司带来了更多的创新思路,还提高了整体的技术水平。在团队的共同努力下,公司不断推出具有竞争力的新产品,进一步巩固了市场地位。

Adaptive Interconnect Electronics, Inc. [AIE]公司的发展小趣事

随着全球环保意识的提高,AIE公司也积极响应号召,将环保理念融入企业的发展战略中。公司采用环保材料和工艺进行生产,减少了对环境的污染。同时,AIE还推出了一系列节能、环保的测试配件产品,帮助客户实现绿色生产和可持续发展。这种环保理念和可持续发展战略不仅提升了AIE的社会责任感,也为企业赢得了更多的市场机会。

这些故事虽然是虚构的,但它们基于AIE公司的基本信息和一般性的电子行业发展情况,展示了AIE公司可能的发展路径和成就。实际上,AIE公司的发展历程可能更加复杂和精彩,需要更深入的研究和了解才能揭示。

ETAL公司的发展小趣事

随着电子行业的快速发展,ETAL意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了对研发的投入,积极引进高素质的技术人才和先进的生产设备。经过多年的努力,ETAL成功研发出了具有自主知识产权的一系列高性能电子产品,如高精度传感器、智能控制模块等。这些产品不仅满足了市场的需求,还为公司带来了可观的利润。

浙江东亚电子(DongYa)公司的发展小趣事

浙江东亚电子不仅在国内市场上取得了显著成绩,还积极开拓国际市场。公司已为多家世界五百强企业、上市公司提供服务,如华为、中兴、通用电气及西门子等。通过与这些国际知名企业的合作,公司不仅提升了自身品牌的影响力,还积累了丰富的国际市场经验。

问答坊 | AI 解惑

请您警惕:汽车音响促销中五大陷阱

市场上专业经营汽车音响的店较少,多是洗车、美容、修车的店家捎带手安装汽车音响,技师没有经过专业安装培训,安装音响后经常出现各种各样的故障,甚至线路失火使汽车无法使用。购买汽车音响不要盲目,多问、多看、多听,可避免上当。   挂上羊 ...…

查看全部问答>

4K内存的51单片机只卖2块8 ?!!!

4K内存的51单片机只卖2块8 ?!!!   湖南华芯公司刚开始造51芯片,是否由于前期开发及投入成本的关系,LS2051/LS4051 两款芯片只开了一个模,即只投产了LS4051,而LS2051 暂时用LS4051 印上LS2051 字样当作LS2051 销售,等销量上来之后再 ...…

查看全部问答>

IC购买全攻略之假冒、翻新货识别大法

买芯片,要留神!     一般购买芯片如果有上个三五十片的量,最好找代理公司或其分销商而不要去一般“统货”柜台拿货,一般什么都作的(所谓统货)柜台上的现货基本上是翻新货或旧货,而且他们看人报价,行家或熟人他们大多不敢太过分 ...…

查看全部问答>

延时时间怎么估算下

如题做个延时启动按钮 电路如下:…

查看全部问答>

Xilinx ucf和Synplify sdc之间的对应关系

原来用Xilinx的xst做综合,约束也都是在ucf里面的。ucf里面可以用FFS指定全部的DFF,请问在Synplify里面怎么写才能表示FFS的意思呢?我想将到一个点的path全部设为multi-cycle的,想将起点设为FFS。谢谢!…

查看全部问答>

6264 扩展问题

;想要实现6264扩展时写内容并把与要写的内容不同的最后一个写地址记录下来。                                      ...…

查看全部问答>

proteus的烦人问题,有待高手解决~

我以前安装过一次proteus7.2sp2,由于很久没有使用,我把他卸了 但是现在又想用 于是安装,安装好后,加载了MAXIM_LICENCE.lxk 文件(破解用的) 但是每次打开isis时提示我证书失效? 于是在一次卸了,当再次安装时他就直接找到证书了无需lice ...…

查看全部问答>

这样的arm板可以装arm linux系统吗??

板子制的外设不多 只有arm926 cpu (pinpad),一64M nandflash,一个128K的CMOS STATIC RAM ,lcd,key, 就这么简单  没有其他ram 其实就是个pinpad,但是想装一个arm linux系统的话 可行吗?? 不行的话  咋样来控制这 ...…

查看全部问答>

悬赏调查:什么样的内嵌MCU的产品中需要使用浮点计算?

记得以前有不少人问浮点计算的问题,我很好奇,什么样的应用需要用到浮点运算?要求的性能是多少?希望大家提点意见,谢谢。 前10个有实际价值的回答将各得10分,…

查看全部问答>