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");
}
}
测试效果图
- 没按按键:
- 按下一次按键:
测试工程与资料手册下载
热门推荐
提升浴室舒适度的细节改造指南
新规之下,谁撤退,谁入局?| 小额网贷市场系列调研
固体氧化物燃料电池(SOFC)电解质材料详解
如何让宠物猫咪穿衣服站稳(了解猫咪行为习惯)
“读屏时代”亟须守好“睛”彩视界
Blender建模必读:优秀拓扑结构的实践指南
一文看懂15类塑料包装的材料选用
太空视角下的航天员如何保持健康?一文了解→
从价格战到内容战,抖音淘宝2024殊途同归
外汇储备连续13个月站稳3.2万亿美元大关,央行扩大黄金储备
黄庭坚《史翊正墓志铭》,温文尔雅,收放自如
《黑暗之魂》三部曲深度对比:哪一部才是最好玩的?
买二手房贷款攻略:公积金贷款、商业贷款、组合贷款哪种更适合?
数实融合向“智”而行!产业数字化转型提速
劳动仲裁指南:证据清单、受理范围及风险防范
情感的升华,从爱情到亲情
如何寻找测试过的软件
【虚幻UE5教程】第一章 基础知识——第三节 初识蓝图
羊奶才是最适合老年人的奶?喝奶攻略,建议收藏
科普|代糖食品可以敞开吃吗?
六月去贵州旅游攻略:路线规划、必备物品及行程安排
为什么说,早睡早起身体好?
冠心病和洗澡有关?医生再三强调:心脏不好的老人,洗澡3要注意
项目编号编制指南:统一标准、确保唯一、简洁扩展
全球外储货币占比数据更新,美元近60%、欧元20%,人民币是多少?
汽车机油标号解读:低温流动性和高温粘度的奥秘
益阳十大必玩景点,去过九处才算真正玩转益阳
午睡的最佳时间:科学解析13-15点的黄金休息时段
3毫克就能致死,但有人就爱吃!官方发布中毒风险提示
长安为都时为何洛阳常为陪都?地理因素揭示历史奥秘