历史上的今天
返回首页

历史上的今天

今天是:2024年11月18日(星期一)

正在发生

2019年11月18日 | stm32f0_GPIO

2019-11-18 来源:eefocus

GPIO口


介绍:


4 个 32 位 配 置 寄 存 器


GPIOx_MODER:模式配置寄存器


GPIOx_OTYPER:输出模式配置寄存器


GPIOx_OSPEEDR:输出速度寄存器


GPIOx_PUPDR:上拉下拉选择


2 个 32 位数据寄存器


GPIOx_IDR:输入寄存器


GPIOx_ODR:输出寄存器


1 个32 位置位 / 复位寄存器


GPIOx_BSRR


A和B还含有1个32位锁定寄存器


GPIOx_LCKR


A和B还含有2个32位替代功能寄存器


GPIOx_AFRH :复用功能寄存器


GPIOx_AFRL :复用功能寄存器


GPIO口可以配置成如下模式:


● 浮空输入


● 上拉输入


● 下拉输入


● 模拟输入


● 具有上拉或下拉能力的开漏输出


● 具有上拉或下拉能力的推挽输出


● 复用功能且具有上拉或下拉能力的推挽输出


● 复用功能且具有上拉或下拉能力的开漏输出


注意事项:


1:所有端口都有外部中断能力。 为了用做外部中断口线, 端口线必须配置为输入模式


2:对于 GPIOx_ODR 中的每位, 在GPIOx_BSRR 中有两位与之对应: BS(i) 和 BR(i)。 当对位


BS(i) 写1时则设置相应的 ODR(i) 位。 当对 BR(i) 写1时, 则复位相应的 ODR(i) 位。


3:为了写 GPIOx_LCKR 寄存器, 须发出一个特定的写 / 读序列。 当正确的锁定序列作用于这个


寄存器的位 16 时, LCKR[15:0] 的值用来锁定 I/O 口的配置


配置过程:


void GPIOConfigure( void )


{


GPIO_InitTypeDef gpio_init_structure;


gpio_init_structure.GPIO_Mode = GPIO_Mode_OUT; //输出模式


gpio_init_structure.GPIO_Speed = GPIO_Speed_50MHz; //输出速度


gpio_init_structure.GPIO_Pin = GPIO_Pin_0; //引脚


gpio_init_structure.GPIO_PuPd = GPIO_PuPd_UP; //上拉模式输出


gpio_init_structure.GPIO_OType = GPIO_OType_PP; //推挽模式输出


 


GPIO_Init(GPIOA,&gpio_init_structure);


}


 


#define GPIOA_SET_BIT0 GPIO_SetBits(GPIOA,GPIO_Pin_0)//置位


#define GPIOA_RSET_BIT0 GPIO_ResetBits(GPIOA ,GPIO_Pin_0)//复位


#define GPIOA_RDIN_ALL GPIO_ReadInputData(GPIOA)


#define GPIOA_RDIN_BIT0 GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)


#define GPIOA_RDOUT_ALL GPIO_ReadOutputData(GPIOA)


#define GPIOA_RDOUT_BIT0 GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0)



上面是相应的读取和写入函数,看函数名就可以理解此函数的功能


上一篇:stm32F1RTC

下一篇:stm32数据类型

推荐阅读

史海拾趣

AMS公司的发展小趣事

AMS(Austria Microsystems)公司是一家总部位于奥地利的半导体制造商,专注于开发和生产高性能的模拟半导体解决方案。以下是 AMS 公司发展的五个相关故事:

  1. 创立与早期阶段:AMS 公司成立于1981年,最初是一家从事晶圆制造的小型企业。公司创始人团队以其对半导体技术的深刻理解和创新能力,在短时间内取得了一定的成就。早期产品主要包括模拟集成电路(IC)和传感器,为医疗、汽车、工业等领域提供解决方案。

  2. 技术创新与产品扩展:随着市场需求的不断变化和技术的进步,AMS 公司不断进行技术创新,并扩展了产品线。公司致力于开发具有高性能、低功耗和小尺寸的模拟半导体产品,以满足智能手机、消费电子、工业自动化等领域的需求。公司的产品涵盖了光学传感器、环境传感器、声学传感器等多个领域。

  3. 全球化发展与市场拓展:AMS 公司通过不断拓展全球市场,加强与客户和合作伙伴的合作关系,实现了快速的业务增长。公司在欧洲、亚洲和美洲设立了多个销售办事处和生产基地,建立了完善的全球供应链和销售网络。公司的产品销售网络覆盖了全球范围,得到了国内外客户的广泛认可。

  4. 收购与合并:随着公司规模的扩大和市场竞争的加剧,AMS 公司通过收购和合并等方式不断强化自身实力。公司先后收购了一些技术领先的公司,扩大了产品线和市场份额。此举进一步提升了公司在模拟半导体领域的竞争优势,加速了公司的业务增长。

  5. 持续创新与未来展望:AMS 公司将继续致力于技术创新和产品研发,不断提升产品性能和品质水平。公司将关注新兴技术和市场趋势,积极布局未来的发展方向,包括人工智能、物联网、汽车电子等领域。同时,公司还将加强与客户和合作伙伴的合作,共同推动行业的发展和进步。

宜源科技(ETERNAL)公司的发展小趣事

随着国内市场的饱和,宜源科技公司积极寻求海外市场的发展机会。公司加强与国际知名企业的合作,共同开发新产品,拓展市场份额。同时,宜源科技还积极参加国际展会和论坛,提升品牌知名度和影响力。通过不懈的努力,宜源科技的产品已经成功进入多个国家和地区,实现了国际化发展。

Hong Kong X'Tals Ltd公司的发展小趣事
在高负载或长时间工作的情况下,需要关注LM122的散热问题,以避免过热导致性能下降或损坏。
ENERGIZER公司的发展小趣事

近年来,随着智能设备的普及,消费者对电池的需求也日益增长。为了满足这一需求,ENERGIZER不断加大研发投入,推出了一系列高性能的电池产品。其中,高能量锂电池的研发成功,为智能设备的发展提供了强有力的支持。这款电池具有高能量密度、长寿命等优点,广泛应用于智能手机、平板电脑等高端电子设备中。同时,ENERGIZER还不断优化生产工艺,降低成本,为消费者提供更优质、更实惠的电池产品。

这些故事展示了ENERGIZER公司在电子行业发展中的创新力和市场洞察力,也体现了该公司对环保和消费者需求的关注与响应。作为全球领先的电池制造商,ENERGIZER始终保持着技术创新的步伐,为全球电子行业的发展做出了重要贡献。

Curtis Electromusic Specialties Inc公司的发展小趣事

在电子行业的激烈竞争中,CUI公司凭借其在材料科学领域的深厚积累,成功研发出了一种新型高性能碘化亚铜材料。这种材料不仅具有优异的导电性能,而且稳定性极高,能够在极端环境下保持稳定的性能。凭借这一技术创新,CUI公司的产品迅速获得了市场的认可,并在多个关键领域得到广泛应用,从而实现了公司的快速发展。

乐鑫(espressif)公司的发展小趣事

乐鑫科技深知,物联网的发展离不开一个完善的生态系统。因此,公司积极构建了一个集硬件、软件、开源社区于一体的物联网生态系统。通过提供丰富的软件资源和技术支持,乐鑫科技为购买其硬件的客户实现了更优的使用体验,推动了物联网应用的普及和落地。

问答坊 | AI 解惑

一款被完全误解的器件?

转自其他网站   为什么仪表放大器常常被人们误解呢?   图 1 所示的 三运放仪表放大器看似为一种简单的结构,因为它使用已经存在了几十年的基本运算放大器 (op amp) 来获得差动输入信号。运算放大器的输入失调电压误差不难理解。运算 ...…

查看全部问答>

S3C2440 WINCE5.0 WIFI的SDIO驱动问题:SDIO HOST驱动是用SDCSDCard.dll还是sdhc_sc2410.dll?

我用的WIFI模块是Marvell 8686,SDIO接口;client驱动他们已经提供了,现在只要把SDIO驱动移植好就可以。 但是我做了3天,实在没什么进展: 1. 我的WIFI模块是直接焊在板上的,所以没有插卡、拔卡的检测中断,不知怎么启动WIFI模块的识别 2. S3C ...…

查看全部问答>

调查一下,大家做GPRS数据传输的方法。用GPRS模块自带的协议栈,还是移植一个TCP/IP协议栈

做一个简单的小调查,用GPRS模块做数据传输系统,大家用的方法是: 1、使用GPRS模块自带的协议栈 2、移植一个TCP/IP协议栈,如Lwip 谢谢…

查看全部问答>

在WinCE下,基于微软的框架开发摄像头,怎么让它连接电脑,变成摄像头使用

项目在WinCE下的摄像头构建成功,不是基于USB的。 在WinCE下通过DShow可以采集数据正常显示。 现在有新的要求,当我们的设备与电脑相连的时候,可以把它作为普通的摄像头来使用 例如,可以进行视频聊天等等。 这个应该怎么做的啊,那些电脑上的 ...…

查看全部问答>

arm linux驱动编写中,中断服务程序中可以进行ioremap吗?

发现只要在中断服务程序中执行到ioremap函数就会报错 nable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c355c000 [00000000] *pgd=338e5031, *pte=00000000, *ppte=00000000 Internal error: Oops: 817 [#1 ...…

查看全部问答>

关于FLASH_SetLatency();的疑问

看STM32的FLASH手册,关于FLASH_ACR寄存器的LATENCY位的说明,上面明确写着:     0 wait state if   0MHz < SYSCLK <= 24MHz     1 wait state if 24MHz < SYSCLK <= 48MHz     2 wait s ...…

查看全部问答>

MSP-EXP430FR5739实验板套件初步应用设想

设想总归是设想,要想实现这个设想对我来说还是一件很遥远的事情。学习过程中少不了各位的帮助,在此先谢谢了!   再次感谢EEWORLD给我们提供了这么超值的团购! 同时也期待着今后更多的超值给力的团购活动!…

查看全部问答>

IAR编译时候遇到问题

IAR编译时候,很多文件直接显示灰色,一个叉。不能编译时为什么啊?有遇到过这种问题的童鞋请帮帮忙…

查看全部问答>

汽车诊断K线通信

汽车诊断K线通信 …

查看全部问答>