STM32库函数太多,而且不能识别大小写,经常记错,GPIO简单记忆。
---第一步--模式配置
void GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //对应GPIO所在的总线时钟必须打开
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1; //哪个GPIO口
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //模式推挽输出--其它有GPIO_Mode_IPU---上拉
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //频率
GPIO_Init(GPIOA, &GPIO_InitStructure); //哪个端口
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
----第二部分---高低电平设置---
------------库函数----------------
GPIO_SetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1); //设置PA0--PA1高电平
GPIO_ResetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1); //设置PA0--PA1低电平
GPIO_WriteBit(GPIOA,GPIO_Pin_3,1); //设置PA3高电平
GPIO_WriteBit(GPIOA,GPIO_Pin_3,0); //设置PA3低电平
--------------直接寄存器----------
GPIOB->ODR = 0XFFFF; //设置PB0高电平
GPIOB->ODR = 0XFFFE; //设置PB0低电平
---第三部分---获取高低电平---一般按键---
GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1) //获取PA1引脚电平0或者1
关键字:STM32 GPIO 操作函数
引用地址:
STM32 GPIO 简单操作函数
推荐阅读最新更新时间:2024-03-16 15:47
【STC15库函数上手笔记】2、GPIO
STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《STC库函数使用参考》 IO口初始化函数 GPIO_Inilize GPIO_InitTypeDef的定义见于文件 GPIO.H 。 typedef struct { u8 Mode; u8 Pin; //要设置的端口 }GPIO_InitTypeDef; Mode:配置IO的模式,取值见下表: Pin:要配置的某一个回多个IO,取值见下表: 以上参数可以使用或运算,比如: GPIO_InitStruc
[单片机]
stm32中gpio的学习浅谈
在基本入门熟悉了开发环境后,我开始学习stm32中的gpio口用法,学习的方法还是最直观简便的先控制LED灯。然而stm32中点亮led倒没有51单片机那么简便。有过51单片机学习经验的伙伴们,肯定熟悉下图的代码(51中控制led的程序)。 如果同样方法写在stm32中肯定是不行的了,首先因为stm32中没有51头文件中那样定义好了P0口可以直接进行总线操作,其次stm32中的gpio口默认是输入模式并且还需要打开相关引脚口的时钟。可能很多人会觉得stm32中官方给的固件库可以直接操作寄存器从而控制gpio口,但是我觉得我这样的初学者还是多了解下底层的方法便于更好的理解。要实现stm32点亮一个led灯(即让gpio口输
[单片机]
STM32 定时器计数器 更新事件
向上计数模式 在向上计数模式中,计数器从0计数到自动加载值(TIMx_ARR计数器的内容),然后重新从0开始计数并且产生一个计数器溢出事件。 如果使用了重复计数器功能,在向上计数达到设置的重复计数次数(TIMx_RCR)时,产生更新事件(UEV);否则每次计数器溢出时才产生更新事件。 这样很容易误解 应该是否则每次计数器溢出时都产生更新事件,即不使用重复重复计数功能每次溢出都产生更新事件。 产生更新事件方式 1.设置了TIMx_CR1寄存器中的URS位(选择更新请求),在TIMx_EGR寄存器中(通过软件方式或者使用从模式控制器)设置UG位将产生一个更新事件UEV,但硬件不设置UIF标志(即不产生中断或DMA请求)
[单片机]
STM32 EXTI外部中断小结
本文为野火教程学习笔记。 EXTI原理解释 EXTI 简介 EXTI (External interrupt/event controller) ——外部中断/事件控制器,其用于管理外设中GPIO和一些其他外设的中断。可以实现单独对某一线配置中断触发方式等操作。 EXTI原理框图解释 边沿检测器检测外部的信号,上升沿和下降沿触发选择寄存器具体的配置会决定边沿检测电路检测何种边沿。 检测到对应边沿后,检测电路输出1,软件中断事件寄存器的配置决定是否产生中断或事件,相当于小开关。 若配置响应这个边沿,则小开关输出1。下面由请求挂起寄存器和事件屏蔽寄存器确定产生中断还是事件。这两个相当于选择开关。
[单片机]
从STM32到TM4C123
我主要是最近看ACfly的代码时,发现他有的工程的文件的.s文件讲道理是启动文件不是STM32,而是TM4C123,我怀疑是TI的芯片,查了下果然是的,应该是电赛准备的。但是这里可以看到换成其他芯片也是有专门的启动文件的。 从51单片机到STM32再到TM4C123 目录 系统时钟 GPIO相关 通用定时器相关 PWM相关 UART通信相关 写在前面: 进入TI的学习,说明STM32 已经掌握的差不多了,没有掌握的很好也没关系,正好两块单片机对比着学习更能加深映像。这篇只是简单的介绍TI,篇幅比较短比,主要还是叙述了32和TI的不同的地方,相似的就没有再写出来,不能完全的拿来当作学习资料。 一点学习TI
[单片机]
FSMC(STM32)
FSMC信号引脚 复用总线时管脚: PD14,//FSMC_DA0 PD15,//FSMC_DA1 PD0 ,//FSMC_DA2 PD1 ,//FSMC_DA3 PE7 ,//FSMC_DA4 PE8 ,//FSMC_DA5 PE9 ,//FSMC_DA6 PE10,//FSMC_DA7 PE11,//FSMC_DA8 PE12,//FSMC_DA9 PE13,//FSMC_DA10 PE14,//FSMC_DA11 PE15,//FSMC_DA12 PD8 ,//FSMC_DA13 PD9 ,//FSMC_DA14 PD10,//FSMC_DA15 PD11,//FSMC_A16 PD12,//FSMC_A17 PD13,//
[单片机]
基于STM32的智能加油系统设计方案
毕设介绍 针对当前汽车加油需求的日益增多,基于STM32开发技术和传感器技术开发一款智能加油系统。 题目要求 智能加油系统应具备油量控制、根据油费计价、加油环境检测的功能。该系统能模拟汽车加油的全过程,并具备远程控制功能。 题目分析 本次毕业设计是智能加油系统的设计与实现,设计所包含的模块主要有oled显示电路、电磁阀驱动电路、可燃气体传感器模块、ds18b20数字温度传感器、蜂鸣器报警模块、WIFI模块、按键电路模块及电源模块。 通过模块之间的配合实现智能加油系统,一旦有温度异常或可燃气体浓度超标将会通过wifi模块对管理人员发出警告。 stm32f103c8t6实时采集ds18b20温度传感器获取温度,如果温度
[单片机]
意法半导体二代STM32微处理器推动智能边缘发展,提高处理性能和工业韧性
新STM32MP2 MPUs搭载64位处理器和边缘 AI加速器 与生俱来的速度、安全性和可靠性 依托STM32生态系统,加快应用开发,安全配置网络 2024年3月12日,中国 -- 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST)发布了新一代的STM32MP2系列工业级微处理器 (MPUs),以推动智能工厂、智能医疗、智能楼宇和智能基础设施等领域未来的发展。 数字化转型席卷全球,它推动企业提高生产效率、改善医疗服务质量,加强楼宇、公用设施和交通网络的安全和能源管理。数字化的核心赋能技术包括云计算、数据分析、人工智能 (AI)和物联网 (IoT)
[单片机]