STM32F407VET6 学习笔记1:GPIO引脚认识分类与开发板原理图

今日学习STM32F407VET6 ,首先从基本原理图、引脚方面开始做个初步理解并整理:

这里使用的学习开发板是在嘉立创购买的 立创梁山派天空星,芯片是 STM32F407VET6

主要对这个芯片的引脚做一些归纳认识、对开发学习板原理图设计进行认识理解:最后就是尝试点亮一个LED灯

文章提供测试代码讲解、完整工程下载、测试效果图

目录

pack包的安装:

STM32F407VET6引脚GPIO归纳:

GPIO总线挂载:

定时器引脚:

串口引脚:

CAN通信引脚:

SPI通信引脚:

I2C通信引脚:

开发板的基本参数理解:

 开发板原理图(部分):

与ST_LINK下载器的连接:

点亮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引脚。

CH1CH2CH3CH4ETRBKIN
TIM1

PA7(CH1N)

PE8(CH1N)

PE9

PB13(CH1N)

PA8

PB0(CH2N)

PE10(CH2N)

PE11

PB14(CH2N)

PA9

PB1(CH3N)

PE12(CH3N)

PE13

PB15(CH3N)

PA10

PE14

PA11

PE7

PA12

PA6

PE15

PB12

TIM2

PA0

PA5

PA1

PB3

PA2

PB10

PA3

PB11

PA0

PA5

PA15

TIM3

PA6

PC6

PB4

PA7

PC7

PB5

PB0

PC8

PB1

PC9

PD2
TIM4

PD12

PB6

PD13

PB7

PD14

PB8

PD15

PB9

PE0
TIM5

PA0

PH10

PA1

PH11

PA2

PH12

PA3

PI0

TIM8

PA5(CH1N)

PA7(CH1N)

PC6

PH13(CH1N)

PI5

PB0(CH2N)

PB14(CH2N)

PC7

PH14(CH2N)

PI6

PB1(CH3N)

PB15(CH3N)

PC8

PH15(CH3N)

PI7

PC9

PI2

PA0

PI3

PA6

PI4

TIM9
PE5\PA2
PE6\PA3
TIM10

PF6

PB8

TIM11

PF7

PB9

TIM12

PH6

PB14

PH9

PB15

TIM13PF8\PA6
TIM14PF9\PA7

串口引脚:

TXRXCTSRTSCK
USART1

PA9

PB6

PA10

PB7

PA0

PA11

PA12
USART2

PA2

PD5

PA3

PD6

PD3

PA1

PD4

PA4

PD7

USART3

PB10

PD8

PC10

PB11

PD9

PC11

PB13

PD11

PB14

PD12

PB12

PD10

PC12

USART4

PA0

PC10

PA1

PC11

USART5PC12PD2
USART6

PC6

PG14

PC7

PG9

PG13

PG15

PG8

PG12

PG7

PC8

CAN通信引脚:

CAN_RXCAN_TX
CAN1

PB8

PI9

PA11

PD0

PB8

PB9

PA12

PD1

PB9

CAN2

PB12

PB5

PB13

PB6

SPI通信引脚:

SCKMISOMOSINSS
SPI1

PA5

PB3

PA6

PB4

PA7

PB5

PA4

PA15

SPI2

PB10

PB13

PI1

PC2

PB14

PI2

PC3

PB15

PI3

PB12

PI0

SPI3

PC10

PB3

PC11

PB4

PC12

PB5

PA4

PA15

I2C通信引脚:

SCLSDASMBA
I2C1

PB6

PB8

PB7

PB9

PB5
I2C2

PH4

PB10

PF0

PH5

PB11

PF2

PH6

PB12

I2C3

PH7

PA8

PH8

PC9

PH9

PA9

开发板的基本参数理解:

 开发板原理图(部分):

 作为笔记,这里贴一些自己以后可能用到的原理图供自己查阅,不是全部......

 

 

与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");
	}	
}

测试效果图:

没按按键:

按下一次按键:

测试工程与资料手册下载:

 https://download.csdn.net/download/qq_64257614/89275988

  • 20
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: STM32F407VET6开发板是一款基于STM32F407VET6芯片的嵌入式开发板。其原理图是一份详细的电路图,包括了所有的电子元器件,连接线路和电路板的布局设计等。由于其功能强大,因此原理图较为复杂,一般分为多个部分来设计。其中,包含了芯片的电源管理电路、时钟电路、复位电路、GPIO等基本电路;还包含了UART、SPI、I2C、CAN等多种通信接口电路;同时也包含了SD卡、WIFI模块、OLED屏幕等常用外设的接口电路。这些电路通过相应的连接方式,能够实现芯片与各种外部设备的连接和通讯,从而使得整个开发板性能更加完备和强大。在开发过程中,通过学习原理图,能够了解开发板的各种功能和实现方式,有效地提高开发效率和调试能力。同时,对于一些修改和扩展开发板功能的需求,也可通过修改原理图来实现。因此,STM32F407VET6开发板原理图是开发过程中非常重要的参考文档,值得深入研究和学习。 ### 回答2: stm32f407vet6开发板原理图是一张反映该开发板电路连接结构和元器件布局的电路图。该原理图包括大量的电子元件、脚位、功率线、信号线等,在全面展示了STM32F407VET6芯片的所有器件和信号的同时,使用户能够通过对电路图的分析和理解,更加深入地了解STM32F407VET6开发板的性能和功能。 该原理图主要包括以下几个模块:电源部分、时钟部分、调试模块、存储器模块、外设模块、输入输出模块等。其中电源部分提供供电,时钟部分提供时钟信号,存储器模块包括FLASH和SRAM,外设模块则包括USART,SPI,I2C,ADC等常用外设。 在原理图中,不同元器件之间的连接通路采用的是各种不同的电子标记和符号进行标注和表示,像晶体管、电容、电阻、脉冲翻转器等器件都有特定的符号表示。这些标记和符号方便我们理解STM32F407VET6开发板的电路连接及元器件作用,而且也有助于用户进行后续维护和更改。 综上所述,stm32f407vet6开发板原理图STM32F407VET6开发板的抽象图像,用户可通过该原理图全面掌握开发板的性能和构造,从而更好地进行开发设计。 ### 回答3: stm32f407vet6开发板原理图是指基于ST公司的stm32f407vet6芯片设计的一张电路原理图,该原理图主要展示了stm32f407vet6芯片与各种外部器件之间的连接电路关系,为开发人员提供了硬件设计的参考。 在这张原理图中,我们可以看到STM32F407芯片的引脚连接了足够多的外部器件,比如数码管、LED等,这些外部器件可通过STM32F407芯片提供的外设接口进行控制。此外,我们还可以看到开发板上配备了丰富的外设模块,如CAN总线接口、USB接口、以太网接口、SD卡座等,大大方便了用户进行各类应用的开发。 此外,STM32F407芯片是一款高性能的微控制器,支持ARM Cortex-M4核,拥有高达168MHz的主频,内置1MB的Flash和192KB的SRAM,以及多个实用的硬件模块和外设接口,包括定时器、ADC、DMA、I2C、SPI、UART等。这些强大的硬件资源驱动开发板的工作,使其具有良好的扩展性和通用性。 总之,STM32F407VET6开发板原理图STM32F407芯片和每个外部器件之间的电路连接关系的展示,它是STM32F407VET6开发板硬件设计的基础。开发人员可以根据这张原理图来调试和修改开发板的硬件电路,在不同应用场景下改造出更为完善和高效的应用系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值