STM32F407VET6 学习笔记:GPIO引脚分类与开发板原理图详解
创作时间:
作者:
@小白创作中心
STM32F407VET6 学习笔记:GPIO引脚分类与开发板原理图详解
引用
CSDN
1.
https://blog.csdn.net/qq_64257614/article/details/138497119
本文是一篇关于STM32F407VET6微控制器学习笔记的技术文章,主要介绍了GPIO引脚的分类、开发板原理图以及如何点亮LED灯。文章内容详细,包含了具体的代码示例和原理图,适合有一定基础的嵌入式开发人员阅读。
pack包的安装
这一步知识提示大家学习新的单片机型号时别忘记添加新的型号的pack包。一般商家提供的资料中会有个pack包,keil没有添加这个pack的便需要添加,否则无法正常编程。这个直接双击安装就行了。
STM32F407VET6引脚GPIO归纳
STM32F407VET6 根据STM命名规则可知,共有100个引脚。引脚定义在STM32F407_405英文数据手册英文数据手册的47页。以手册为主、归纳是我自己人工完成的,可能有错误!
GPIO总线挂载
在使用标准库函数进行编程配置GPIO时,第一步就需要开启对应的GPIO的总线时钟,以下为外设总线以及其相对应的外设:
- RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState)
- RCC_AHB2PeriphClockCmd(uint32_t RCC_AHB2Periph, FunctionalState NewState)
- RCC_AHB3PeriphClockCmd(uint32_t RCC_AHB3Periph, FunctionalState NewState)
- RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState)
- RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)
定时器引脚
其中TIM1和TIM8是高级计时器、TIM2~TIM5是通用计时器。STM32F407的定时器通常连接到特定的GPIO引脚作为输入捕获、输出比较或PWM输出。
例如TIM1可以连接到PA8, PA9, PA10, PA11等引脚。其他定时器(TIM2, TIM3, TIM4, TIM5, TIM8等)也会连接到不同的GPIO引脚。
CH1 | CH2 | CH3 | CH4 | ETR | BKIN |
|---|---|---|---|---|---|
PA7(CH1N)PE8(CH1N)PE9PB13(CH1N)PA8 | PB0(CH2N)PE10(CH2N)PE11PB14(CH2N)PA9 | PB1(CH3N)PE12(CH3N)PE13PB15(CH3N)PA10 | PA11 | PE7PA12 | PA6PE15PB12 |
PA0PA5 | PA1PB3 | PA2PB10 | PA3PB11 | PA0PA5PA15 | |
PA6PC6PB4 | PA7PC7PB5 | PB0PC8 | PB1PC9 | PD2 | |
PD12PB6 | PD13PB7 | PD14PB8 | PD15PB9 | PE0 | |
PA0PH10 | PA1PH11 | PA2PH12 | PA3PI0 | ||
PA5(CH1N)PA7(CH1N)PC6PH13(CH1N)PI5 | PB0(CH2N)PB14(CH2N)PC7PH14(CH2N)PI6 | PB1(CH3N)PB15(CH3N)PC8PH15(CH3N)PI7 | PC9PI2 | PA0PI3 | PA6PI4 |
PE5\PA2 | PE6\PA3 | ||||
PF6PB8 | |||||
PF7PB9 | |||||
PH6PB14 | PH9PB15 | ||||
PF8\PA6 | |||||
PF9\PA7 |
串口引脚
TX | RX | CTS | RTS | CK |
|---|---|---|---|---|
PA9PB6 | PA10PB7 | PA0PA11 | PA12 | |
PA2PD5 | PA3PD6 | PD3 | PA1PD4 | PA4PD7 |
PB10PD8PC10 | PB11PD9PC11 | PB13PD11 | PB14PD12 | PB12PD10PC12 |
PA0PC10 | PA1PC11 | |||
PC12 | PD2 | |||
PC6PG14 | PC7PG9 | PG13PG15 | PG8PG12 | PG7PC8 |
CAN通信引脚
CAN_RX | CAN_TX |
|---|---|
PB8PI9PA11PD0PB8 | PB9PA12PD1PB9 |
PB12PB5 | PB13PB6 |
SPI通信引脚
SCK | MISO | MOSI | NSS |
|---|---|---|---|
PA5PB3 | PA6PB4 | PA7PB5 | PA4PA15 |
PB10PB13PI1 | PC2PB14PI2 | PC3PB15PI3 | PB12PI0 |
PC10PB3 | PC11PB4 | PC12PB5 | PA4PA15 |
I2C通信引脚
SCL | SDA | SMBA |
|---|---|---|
PB6PB8 | PB7PB9 | PB5 |
PH4PB10 | PF0PH5PB11 | PF2PH6PB12 |
PH7PA8 | PH8PC9 | PH9PA9 |
开发板的基本参数理解
开发板原理图(部分)
作为笔记,这里贴一些自己以后可能用到的原理图供自己查阅,不是全部......
与ST_LINK下载器的连接
按照以下方式连接开发板与ST_LINK下载器:
- SWO------SWIM
- CLK------SWCLK
- DIO------SWDIO
- 5V0------5.0V
- RST------RST
- GND------GND
在下载程序时别忘记在魔棒更改选择对应的debug仿真器。
点亮LED代码
这代码是立创商家给的例程代码,这里贴出学习使用:
初始化LED端口
void led_init(void)
{
//开GPIO总线
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
//使用结构体初始化GPIO
GPIO_Init(GPIOB, &GPIO_InitStructure);
//GPIO初始化输出0
GPIO_ResetBits(GPIOB,GPIO_Pin_2);
flag = 0;
}
初始化按键端口
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
按键扫描函数
void key_scan(void)
{
if( SET == GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) )
{
/* 延迟消抖 */
delay_ms(20);
if( flag )
{
GPIO_SetBits(GPIOB, GPIO_Pin_2);
flag = 0;
}
else
{
GPIO_ResetBits(GPIOB, GPIO_Pin_2);
flag = 1;
}
printf("Key Press!!\r\n");
while(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == SET) // 等待按键松开
{
}
/* 延迟消抖 */
delay_ms(20);
printf("Key Release!!\r\n");
}
}
测试效果图
- 没按按键:
- 按下一次按键:
测试工程与资料手册下载
热门推荐
中医为什么说“有事没事桂枝汤,遇事不决小柴胡”?
为什么要懂点经济学?这是我看过最好的答案
汇聚全球高端要素,粤港澳大湾区底气何在
企业核心竞争力构成要素
生成唯一强密码的提示
根管治疗的两个主要步骤:从预备到充填
换机油前需要热车吗
如何在需求流程中应用价值链分析
大学生家教价格:了解并合理定价
基层,不妨大胆拥抱AI
走进两汉罗马时期的女性世界——解读“彼美人兮:两汉罗马时期女性文物展”
小米粥放碱好吗
智慧园区数字化平台建设方案:产业服务平台 + 互联网 + 共享资源 + 创新运营
婚约财产纠纷的法律解析与实务指引
为什么热水瓶胆放在耳边会嗡嗡响?
最冷-33℃,东北三省花园代表,超详细月季、绣球过冬保护经验,耐寒植物清单分享
陈实功与《外科正宗》
公司不按规定给陪产假怎么办?法律为你撑腰
室外好养的花草植物有哪些(如果有小院,一定要养5种花)
Excel中替换多个字符串的三种方法
Netty 编码器 & 解码器 正确使用姿势
甲状腺结节的症状、危害与防治方法
公司不给陪产假可以申请劳动仲裁吗
原生家庭之痛:有毒父母行为与子女抑郁内耗的隐秘联系
香椿芽如何长期保鲜存放
急性喉头水肿的急救处理
几岁的小狗最容易感染细小病毒?如何预防和治疗?
全球主要国家滑雪认证体系大盘点
让“校园餐”成为学生的“幸福餐”
2025年手机国补政策最新解读:iPhone 16价格降至4499元