初识STM32F407芯片

news/2024/11/15 21:25:02/

嵌入式技术是整个物联网系统的关键核心技术之一。它相当于感知层大脑的,将感知层的传感器部分统一起来,实现具体的功能,是整个物联网的底层基础部分。

嵌入式的开发,最核心部分是芯片的开发。目前嵌入式开发主要有单片机、嵌入式linux等。其中单片机以其功能强大、性价比高,在物联网这一行业中占据了大半江山。

4.1 初识STM32F407芯片

本节介绍单片机和STM32F407芯片。

4.1.1 单片机介绍

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

4.1.2 STM32F407芯片

本书选用ST(意法半导体)推出的STM32F407系列芯片。它是ST(意法半导体)推出了以基于ARM Cortex™-M4为内核的高性能微控制器,其采用了90 纳米的NVM 工艺和ART(自适应实时存储器加速器,Adaptive Real-Time MemoryAccelerator™)。

根据市场相关统计,2017年STM32系列芯片出货为10亿颗。作为全球最大的半导体公司之一,ST拥有广泛的产品线,传感器、功率器件、汽车产品和嵌入式处理器解决方案,在物联网生态中起到重要作用。而其中MCU 是最重要的业务之一,官方数据显示,2017年,ST在通用微控制器市场份额约占据19%,公司拥有超过800款的STM32产品,超过50000个客户。

图4.1 STM32F407芯片

使用STM32F407作为开发主要是基于以下几点理由:

1)性价比高。

STM32F407VET6型号单颗采购价为13元左右,批量价格会更低一点。

2)市场大,开发资料多。

作为全球最受欢迎的芯片,目前市场上绝大部分公司都是基于STM32系列的芯片做开发,企业招聘也基本都要求会STM32。同时网上有很多成熟方案,相关论坛。

3)性能强大。

STM32F407提供了工作频率为168 MHz的Cortex™-M4内核(具有浮点单元)的性能。从Flash存储器执行时,STM32F407/417能够提供210 DMIPS/566 CoreMark性能,并且利用意法半导体的ART加速器实现了FLASH零等待状态。DSP指令和浮点单元扩大了产品的应用范围。

4)外设资源。丰富

2个USB OTG(其中一个支持HS)

音频:专用音频PLL和2个全双工I²S

通信接口多达15个(包括6个速度高达11.25 Mb/s的USART、3个速度高达45 Mb/s的SPI、3个I²C、2个CAN和1个SDIO)

模拟:2个12位DAC、3个速度为2.4 MSPS或7.2 MSPS(交错模式)的12位ADC

定时器多达17个:频率高达168 MHz的16和32位定时器

可以利用支持Compact Flash、SRAM、PSRAM、NOR和NAND存储器的灵活静态存储器控制器轻松扩展存储容量

基于模拟电子技术的真随机数发生器

4.3 GPIO口操作

在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。对设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。

4.3.1 LED硬件原理图

本章节将通过操作LED亮灭的方式,来实现对STM32F407的GPIO口操作。翻看开发板LED相关的硬件原理图,如图4.17所示。

图4.17 LED原理图

根据原理图以及LED灯的特性,我们可知:当LED0、LED1、LED2引脚输出低电平的时候,三个LED灯将会发光。反之输出高电平的时候,三个LED灯将熄灭。

而LED0、LED1、LED2三个引脚又分别对应到STM32F407芯片上的GPIOE_3、GPIOE_4、GPIOG_9。故而,LED的亮灭操作可以转化成STM32F407的引脚输出操作。

4.3.2 STM32F407的GPIO口介绍

1)分组

STM32F407有7组IO。分别为GPIOA~GPIOG,每组IO有16个IO口,共有112个IO口  通常称为 PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。

2GPIO的复用

STM32F4 有很多的内置外设,这些外设的外部引脚都是与 GPIO 共用的。也就是说,一个引脚可以有很多作用,但是默认为IO口,如果想使用一个 GPIO内置外设的功能引脚,就需要GPIO的复用,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。    比如说串口  就是GPIO复用为串口

3GPIO的输入模式

GPIO_Mode_IN_FLOATING 浮空输入

GPIO_Mode_IPU 上拉输入

GPIO_Mode_IPD 下拉输入

GPIO_Mode_AIN 模拟输入

4GPIO的输出模式

GPIO_Mode_Out_OD 开漏输出(带上拉或者下拉)

GPIO_Mode_AF_OD 复用开漏输出(带上拉或者下拉)

GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉)

GPIO_Mode_AF_PP 复用推挽输出(带上拉或者下拉)

4GPIO的最大输出速度

2MHZ  (低速)

25MHZ  (中速)

50MHZ  (快速)

100MHZ  (高速)

4.3.3 STM32标准外设库

STM32标准外设库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。

因此,使用固态函数库可以大大减少开发者开发使用片内外设的时间,进而降低开发成本。每个外设驱动都由一组函数组成,这组函数覆盖了该外设所有功能。同时,STM32官方还给出了大量的示例代码以供学习。

STM32标准外设库可以到ST官网下载,也可以直接使用本书附录部分提供的下载好的STM32标准外设库。

使用keil MDK编写代码时,我们需要将STM32标准外设库添加到工程中去。这里推荐读者直接使用附录已经添加好的工程文件。


http://www.ppmy.cn/news/139534.html

相关文章

USB ISO传输带宽计算

1. ISO带宽计算 max packet size interval mult maxburst 1)max packet size 0 - 1023 (fs), 0 - 1024 (hs/ss) 2) interval 1 - 16 service interval, 125us * 2^(interval - 1) 3) mult 0 - 2 (hs/ss only) an isochronous endpoint can request up to t…

STM32Cubemx——IIC驱动0.96寸OLED

文章目录 一、使用工具二、前置知识1.12864OLED2.IIC通信 三、STM32Cubemx配置1.新建工程配置基本2.时钟树配置3.开启IIC并配置4.生成工程 三、Keil代码移植1.生成工程,并将本工程中APP文件夹复制进自己的工程2.打开Keil,添加分组APP,将文件A…

SAP 关于库存(MC.9)分析

凡是看库存报表可能会用到如下几个T-code: MMBE:MARD-LABST(Valuated stock with unrestricted use) MB52:MARD-LABST MB51:MSEG:ERFMG累加 MM03:MBEW-LBKUM (Total valuated stock) MB5L:MBEW-SALK3 (Value of total …

STM32 - L4系列芯片手册: LTDC功能

STM32L4系列芯片手册 - LTDC功能 LCD-TFT display controller (LTDC) 简介 LCD-TFT(液晶显示器-薄膜晶体管)显示控制器提供了一个并行的数字RGB(红、绿、蓝)信号。 还提供水平/垂直同步信号、像素时钟和数据,这些作为输…

STM32常用初始化代码块(STM32F407)

目录 GPIO初始化定时器中断配置定时器PWM输出配置外部中断配置串口使用初始化发送数据接收数据指定标志结尾符通过串口空闲中断判断一帧是否结束 ADC与DAC的使用DAC的使用ADC的使用 GPIO初始化 例如需要使用PA8,PC8,PC9 void My_Gpio_Init(void) {GPIO_InitTypeDef GPIO_Init…

STM32CubeMX驱动4脚OLED模块

文章目录 STM32CubeMX驱动4脚OLED模块一、准备工作1.硬件平台2.软件平台3.OLED接线图 二、操作步骤1.CubeMX配置硬件IIC、串口(用于调试)生成代码2.导入OLED驱动代码3.调用API4.程序下载,观察现象(通用步骤)5.实验现象…

深入浅出二叉树— C语言版【数据结构】

目录 ​编辑 1.树概念及结构 1.1树的概念 1.2 树的相关概念 ​1.3 树的表示 2.二叉树概念及结构 2.1概念 2.2 特殊的二叉树 2.3 二叉树的性质 2.4 简单二叉树题目练习 2.5 二叉树的存储结构 2.5.1 顺序存储——堆 2.5.2 链式存储 1.树概念及结构 1.1树的概念 树…

CM4_ 1、Cortex-M4内核

文章目录 一、Cortex-M4的架构二、Cortex-M4流水线三、Cortex-M4的总线接口(简单了解)Cortex-M4的3套总线 四、Cortex-M4的相关寄存器组1、通用寄存器组2、堆栈指针R13(SP)3、连接寄存器R14(LR)4、程序计数器R15(PC)5、特殊功能寄存器组5.1、程序状态寄存…