历史上的今天
返回首页

历史上的今天

今天是:2024年09月28日(星期六)

2021年09月28日 | STM32入门学习之GPIO(STM32F030F4P6基于CooCox IDE)(寄存器操作版

2021-09-28 来源:eefocus

依然,直接上代码


#include "stm32f0xx.h"

#include "stm32_lib/inc/stm32f0xx_rcc.h"

#include "stm32_lib/inc/stm32f0xx_gpio.h"

 

int main(void)

{

//IOPAEN=1,使能GPIOA的时钟

RCC->AHBENR |= RCC_AHBENR_GPIOAEN;

//设置IO口工作模式,GPIOA_MODER4=0x01,通用IO口

GPIOA->MODER |= GPIO_MODER_MODER4_0;

GPIOA->MODER &= ~GPIO_MODER_MODER4_1;

//设置输出类型,GPIO_OTYPER_OT_4=1,推挽输出

GPIOA->OTYPER &= ~GPIO_OTYPER_OT_4;

//设置速率,GPIO_OSPEEDER_OSPEEDR4=0x01,中速,10MHz

GPIOA->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4_0;

GPIOA->OSPEEDR &= GPIO_OSPEEDER_OSPEEDR4_1;

//设置上下拉,GPIO_PUPDR_PUPDR4=0x00,无上拉,无下拉

GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR4_0;

GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR14_1;

 

//GPIOA->BSRR |= GPIO_BSRR_BS_4;//输出高电平

GPIOA->BSRR &= ~GPIO_BSRR_BS_4;//输出低电平

 

    while(1){}

 

}


首先,我们看,RCC->AHBENR是什么意思?

-> 很形象,箭头,指示的意思。


其实,这个RCC是一个指针,AHBENR是结构体成员


RCC->AHBENR 等同 RCC.AHBENR,大家可尝试在CooCox IDE中输入“RCC.",结果点会自动变成->


我们可以在stm32f0xx.h头文件中找到关于RCC结构体的定义

上面定义的是RCC_TypeDef,我们可以继续查看关于”RCC” 的定义,见STM32F0xx.h第791行。

知道了RCC,那RCC_BASE又是什么呢,见STM32F0xx.h第735行。

AHBPERIPH_BASE又是什么呢?


好了,一切真相大白,RCC->AHBENR,就是指寄存器地址。


我们看该寄存器到底有哪些东西,如下图所示,我们要配置GPIOA的时钟,只需要将IOPA置1即可。


方法很多,第一种就是纯粹的移位与或操作。


RCC->AHBENR |=(1<<17);

另外一种方法,我们继续查看头文件stm32f0xx_rcc.h

查看stm32f0xx.h,这里就得到了IOPAEN的位置了,其宏定义为 RCC_AHBENR_GPIOAEN


如果要设置这个位的值为1,就直接用“或”   RCC->AHBENR |= RCC_AHBENR_GPIOAEN


如果要设置这个位的值为0,就先取反,再“与”   RCC->AHBENR &= ~RCC_AHBENR_GPIOAEN;

那其他GPIO的配置,也是如此。

推荐阅读

史海拾趣

Fischer Connectors公司的发展小趣事

Fischer Connectors公司在电子行业中的五个发展故事

故事一:创立与初期发展

Fischer Connectors的故事始于1954年,由真空技术专家Walter Werner Fischer在瑞士沃州的莫尔日创立。他凭借对技术的热爱和执着,开发出了世界上第一个高品质密封连接器,专为工业应用而设计。这一创新产品迅速赢得了市场的认可,为公司的发展奠定了坚实的基础。在随后的几年里,Fischer Connectors不断优化产品,并于1962年注册了推拉锁定系统的国际专利,进一步巩固了其在连接器行业的领先地位。

故事二:全球扩张与国际合作

随着业务的不断增长,Fischer Connectors开始积极寻求全球扩张的机会。1988年,公司在英国成立了第一家子公司,标志着其国际商业活动的正式开始。此后,Fischer Connectors相继在欧洲的德国、意大利、法国以及美国等地开设了子公司,形成了全球性的生产和服务网络。这些子公司不仅为当地市场提供了高质量的连接器产品,还促进了Fischer Connectors在全球范围内的技术创新和市场拓展。

故事三:技术创新与产品线扩展

Fischer Connectors始终将技术创新作为企业发展的核心驱动力。进入21世纪后,公司推出了一系列具有创新性的连接器产品,如Fischer Core系列塑料连接器、AluLite™超轻铝连接器以及Fischer UltiMate™系列超坚固连接器等。这些产品不仅满足了不同行业对连接器性能的多样化需求,还推动了整个电子行业的技术进步。同时,Fischer Connectors还不断扩展其产品线,涵盖了多极低电压连接器、同轴高电压连接器等多个领域,进一步巩固了其在连接器市场的领先地位。

故事四:应对行业挑战与定制化解决方案

随着电子行业的快速发展,连接器和线缆系统的应用环境越来越复杂多样。Fischer Connectors凭借其在技术、质量和服务方面的优势,积极应对行业挑战,为客户提供定制化的解决方案。公司拥有一支专业的研发团队和客户服务团队,能够深入了解客户的实际需求,量身定制出最适合客户应用方案的连接器与线缆系统。这种以客户为中心的服务理念赢得了广大客户的信赖和支持。

故事五:数字化转型与可持续发展

近年来,Fischer Connectors积极响应数字化转型的浪潮,利用先进的技术手段提升生产效率和产品质量。公司投入大量资源建设智能化生产线和数字化管理系统,实现了从原材料采购、生产加工到成品出库的全流程信息化管理。同时,Fischer Connectors还注重可持续发展,致力于开发环保型连接器和线缆系统,减少对环境的影响。这些努力不仅提升了公司的竞争力,还为公司赢得了更多的社会认可和赞誉。

博众电气(BZCN)公司的发展小趣事

在追求经济效益的同时,博众电气也始终关注环保问题。公司积极响应国家绿色发展的号召,将环保理念融入产品研发和生产过程中。通过采用环保材料和节能技术,博众电气成功降低了产品对环境的影响,实现了经济效益和环境保护的双赢。这一举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新动力。

ABCircuits公司的发展小趣事

ABCircuits公司成立之初,便专注于半导体技术的研发。在电子行业的浪潮中,公司敏锐地洞察到市场对高性能、低功耗芯片的需求,于是投入大量资源进行研发。经过数年的努力,ABCircuits成功推出了一款具有革命性的芯片,该芯片在性能上远超同行,同时功耗极低,迅速获得了市场的认可。这一技术创新为ABCircuits公司打开了新的市场领域,奠定了其在行业内的领先地位。

FSP [FSP TECHNOLOGY INC.]公司的发展小趣事

ABCircuits公司成立之初,便专注于半导体技术的研发。在电子行业的浪潮中,公司敏锐地洞察到市场对高性能、低功耗芯片的需求,于是投入大量资源进行研发。经过数年的努力,ABCircuits成功推出了一款具有革命性的芯片,该芯片在性能上远超同行,同时功耗极低,迅速获得了市场的认可。这一技术创新为ABCircuits公司打开了新的市场领域,奠定了其在行业内的领先地位。

Elec & Eltek公司的发展小趣事

Elec公司成立于20世纪初,最初只是一家小型电子元件生产商。创始人李明(化名)对电子技术有着深厚的兴趣和独到的见解。在他的带领下,Elec公司逐步研发出具有竞争力的电阻、电容等基础元件,并逐渐在市场中崭露头角。随着电子技术的不断发展,Elec公司敏锐地捕捉到半导体技术的潜力,开始投入巨资研发。经过数年的努力,Elec公司成功研发出具有自主知识产权的半导体芯片,这一突破让Elec公司在电子行业中声名鹊起。

雅特力(Artery)公司的发展小趣事

随着公司实力的不断增强,雅特力开始将目光投向全球市场。公司积极参与国际电子展会和论坛,与全球各地的客户和合作伙伴建立了广泛的联系。同时,雅特力还通过设立海外分支机构、开展跨国合作等方式,进一步拓展其全球市场。这些举措不仅提升了雅特力的品牌知名度和影响力,也为公司的长远发展奠定了坚实的基础。

问答坊 | AI 解惑

提高RF微波测试正确性

尽管大部分的RF 和微波测试系统所要量测的对象只有区区几种广泛的类别- 放大器、发射器、接收器等,但每一套个别的系统却会面临一些不同的环境条件、要求和挑战。虽然每一种状况可能都不一样,不过当您在定义任何的RF和微波测试系统时,却有三项共 ...…

查看全部问答>

有了开发板是不是还得有仿真器阿,而且我的是本....

开发软件不得经过仿真器和板子通话吗?而且都是什么接口阿?今天刚发现,我的本质有USB和VGA接口,还有一个特小的叫什么1194接口,能连上吗?…

查看全部问答>

磁环电感的计算

本帖最后由 paulhyde 于 2014-9-15 03:06 编辑 磁环电感计算公式,很不错    …

查看全部问答>

IGBT逆变器缓冲电路的设计

IGBT逆变器缓冲电路的设计…

查看全部问答>

找一块带MPEG解码的ARM开发板

想找一块带MPEG解码的ARM开发板,2440放MPEG4,320*240还行,太再放大些,就太慢了。 知道的请帮推荐一下,找了N家,都说没有。 不知道为什么都不卖这板子?…

查看全部问答>

在wince5的ddraw如何实现rotation?

找到一个DDFXCAPS_BLTROTATION CAP,但在驱动中加了以后应用去掉用,仍然返回DDERR_NOROTATIONHW,不清楚大家都是怎么做的,谢谢!给高分!最好有实例代码参考一下…

查看全部问答>

msp430ADC外部参考电压的问题

求救:msp430ADC参考电压设置为Veref+和AVss(寄存器SREF_2),Veref+用的是2.5V(万用表测的,准),为什么adc输入0.75的电压就饱和了呢…

查看全部问答>

2012湖北电赛所有芯片资料

本帖最后由 paulhyde 于 2014-9-15 04:03 编辑 2012湖北电赛所有芯片资料 自己整理  …

查看全部问答>

谁知道高端、大气、上档次的时间数字转换器是个啥玩意儿?

模数转换器(ADC)、数模转换器(DAC)见的多,也用的多了,可现在在做一个超声波水表的项目,偏偏其中的一个关键器件是时间数字转换器,听这名字就赶脚很高端?网上搜索这方面的资料也不是很多,有了解的筒子吗?出来讲讲啊!…

查看全部问答>