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");
}
}
测试效果图
- 没按按键:
- 按下一次按键:
测试工程与资料手册下载
热门推荐
派出所基础工作提升社区安全感
火麻油:营养价值与食用指南
“急急如律令”,原是古代流行语,专家解密它是何含义?
雷风恒卦教你如何实现个人成长
疫情期间如何科学管理你的生活压力?
夏雨森推荐:周末户外徒步,释放压力的最佳方式
人物形象设计:塑造独特角色的指南
世界儿童日,前海小学教你如何增进亲子关系
职场高效沟通的艺术:从换位思考到实战技巧
五帝钱佩戴指南:避邪招财全靠它!
五帝钱佩戴禁忌全攻略:材质、开光到佩戴注意事项
你戴对了吗?五帝钱的正确佩戴方式全攻略
低尿酸血症的饮食调理:动物内脏和海鲜怎么吃?
粤港澳大湾区:内地与港澳合作的新篇章
粤港澳大湾区:内地与港澳合作的新高地
个人港澳自由行助推湾区生活圈成型
《大都会》中的建筑思想:科幻电影的开山之作如何展现20世纪初的建筑潮流
丁丑年:传统历法中的文化密码
达力动漫新作《神兽金刚之地球之盾》上线:传统文化与现代科技的完美融合
咖啡生豆储存小窍门:别让你的Kenya变味!
复旦大学用AI破解量子隧穿难题,为集成电路发展开辟新路径
量子隧穿效应如何影响7nm芯片?新材料或成突破关键
警惕金融骗局:从茶叶到Pi币——派币风险解析
案例丨凝聚“Z世代”力量 搭建多元文化沟通桥梁
浅析动画创作中角色表演技巧应用
新材料赋能济南地铁3号线:智能供电与防火风管创新应用
龙爪根上的谜语,你猜对了吗?
《西游记》与《封神榜》:中国古代神话的双璧
职场新人必读:《西游记》里的生存法则
深入了解股票分红计算方式,持股时间对分红的影响因素解读