1.GPIO全称:gpio general-purpose input/output 通用输入/输出端口
2.GPIO寄存器中文名称与英文缩写对照表
3.GPIO_InitTypeDef结构体定义
typedef struct
{
uint16_t GPIO_Pin;//选择待设置的GPIO引脚
GPIOSpeed_TypeDef GPIO_Speed;//设置选中管脚的速率
GPIOMode_TypeDef GPIO_Mode;//设置选中管脚的工作状态(模式)
}GPIO_InitTypeDef;
4.GPIO_Mode:端口的每个位可以分别配置成多种模式,中文名称与英文缩写对照表如下:
5.复位期间和刚复位后,复用功能未开启,I/O 端口被配置成浮空输入模式。
LED硬件连接如下图所示:高电平点亮LED。
6.接下来就是正式内容了
第一步:配置系统时钟。另外,将GPIO外设时钟打开。
/* Enable GPIOC clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
第二步:配置中断向量表。决定将程序下载到RAM中还是FLASH中。
void NVIC_Configuration(void)
{
//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
}
第三步:配置GPIO的模式。输入模式还是输出模式。重点。
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
由上面代码可见,使用GPIO十分简单,只需填写GPIO_InitTypeDef结构体的成员变量。
然后,调用GPIO_Init函数,GPIO的模式就配置好了。
当然,对于使用者来说,GPIO_Init函数相当于黑箱,不知道其内部运作机制,执行完步骤三就可以向该管脚写1还是写0了。
第四步:向指定Port指定Pin,写1还是写0。上述原理图中LED都是高电平点亮。利用两个库函数。
GPIO_SetBits() ; //向指定Port指定Pin写1
GPIO_ResetBits() ; //向指定Port指定Pin写0
经过上面4步,就可以成功驱动LED流水灯。
7.主要代码
#include "stm32f10x_lib.h"
void RCC_Configuration(void);
void NVIC_Configuration(void);
void GPIO_Configuration(void);
void Delay(vu32 nCount);
int main(void)
{
RCC_Configuration();
NVIC_Configuration();
GPIO_Configuration();
while (1)
{
GPIO_SetBits(GPIOC,GPIO_Pin_6);//点亮LED1
Delay_ms(100);
GPIO_ResetBits(GPIOC,GPIO_Pin_6);//熄灭LED1
GPIO_SetBits(GPIOC,GPIO_Pin_7);//点亮LED2
Delay_ms(100);
GPIO_ResetBits(GPIOC,GPIO_Pin_7);//熄灭LED2
GPIO_SetBits(GPIOC,GPIO_Pin_8);//点亮LED3
Delay_ms(100);
GPIO_ResetBits(GPIOC,GPIO_Pin_8);//熄灭LED3
GPIO_SetBits(GPIOC,GPIO_Pin_9);//点亮LED4
Delay_ms(100);
GPIO_ResetBits(GPIOC,GPIO_Pin_9);//熄灭LED4
}
}
上一篇:stm32—GPIO操作(库函数)
下一篇:STM32封装自己的库函数(GPIO初始化)
推荐阅读最新更新时间:2024-11-10 16:31
设计资源 培训 开发板 精华推荐
- OP249GPZ瞬态输出阻抗测试治具典型应用电路
- LT1317IS8 单节锂离子至 5V DC/DC 转换器的典型应用电路
- 使用 Analog Devices 的 LTC1159CG-5 的参考设计
- Si5318-EVB,基于 Si5318 SONET/SDH 精密时钟乘法器的评估板
- 低频磁性发射器设计
- 适用于STM32G071RB MCU的STM32 Nucleo-64开发板,支持Arduino和ST morpho连接
- ChipWhisperer-Husky:掌上侧信道功率分析和故障注入工具
- STK984-091AGEVB,STK984-091A-E 三相BLDC电机驱动器混合评估板
- Arduboy schematics
- LT3990HMSE 5V 同步降压转换器的典型应用