STM32F407-90

问题描述:STM32F407的介绍是什么? 大家好,本文将围绕一个有趣的事情展开说明,一个有趣的事情是一个很多人都想弄明白的事情,想搞清楚一个有趣的事情需要先了解以下几个事情。

STM32F407,了解的请介绍下这个芯片性能,谢谢

STM32F407-90的相关图片

STM32F4是由ST(意法半导体)开发的一种高性能微控制器。其采用了90 纳米的NVM 工艺和ART(自适应实时存储器加速器,Adaptive Real-Time MemoryAccelerator™)。

简介:

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

ART技术使得程序零等待执行,提升了程序执行的效率,将Cortext-M4的性能发挥到了极致,

使得STM32 F4系列可达到210DMIPS@168MHz。

自适应实时加速器能够完全释放Cortex-M4 内核的性能;当CPU 工作于所有允许的频率(≤168MHz)时,在闪存中运行的程序,可以达到相当于零等待周期的性能。

STM32F4系列微控制器集成了单周期DSP指令和FPU(floating point unit,浮点单元),提升。

了计算能力,可以进行一些复杂的计算和控制。

STM32 F4系列引脚和软件兼容于当前的STM32 F2系列产品。

优点

※兼容于STM32F2系列产品,便于ST的用户扩展或升级产品,而保持硬件的兼容能力。

※集成了新的DSP和FPU指令,168MHz的高速性能使得数字信号控制器应用和快速的产品开发达到了新的水平。提升控制算法的执行速度和代码效率。

※先进技术和工艺

- 存储器加速器:自适应实时加速器(ART Accelerator™ )。

- 多重AHB总线矩阵和多通道DMA:支持程序执行和数据传输并行处理,数据传输速率非常快。

- 90nm工艺

※高性能

- 210DMIPS@168MHz。

- 由于采用了ST的ART加速器,程序从FLASH运行相当于0等待更多的存储器。

- 多达1MB FLASH (将来ST计划推出2MB FLASH的STM32F4)。

- 192Kb SRAM:128KB 在总线矩阵上,64KB在专为CPU使用的数据总线上高级外设与STM32F2兼容。

- USB OTG高速 480Mbit/s。

- IEEE1588, 以太网 MAC 10/100。

- PWM高速定时器:168MHz最大频率。

- 加密/哈希硬件处理器:32位随机数发生器(RNG)。

- 带有日历功能的32位RTC:<1 μA的实时时钟,1秒精度。

※更多的提升

- 低电压:1.8V到3.6V VDD,在某些封装上,可降低至1.7V。

- 全双工I2S

- 12位 ADC:0.41us转换/2.4Msps(7.2Msps在交替模式)。

- 高速USART,可达10.5Mbits/s。

- 高速SPI,可达37.5Mbits/s。

- Camera接口,可达54M字节/s。

stm32f411和407区别的相关图片

stm32f411和407区别

1.STM32F407ZG应用。

电机驱动和应用控制

医疗设备

工业应用:PLC,变频器,断路器。

打印机和扫描仪

报警系统,可视对讲,暖通空调

家用音响设备

2.STM32F407ZG概述。

STM32F407ZG系列是基于高性能的ARM®Cortex™-M4F的32位RISC内核,工作频率高达168 MHz的。的Cortex-M4F核心功能支持所有ARM单精度数据处理指令和数据类型的单精度浮点单元(FPU)。它还实现了一套完整的DSP指令和内存保护单元(MPU),从而提高应用程序的安全性。

该STM32F407ZG系列采用高速嵌入式存储器(多达1 MB闪存,高达192 KB的SRAM),最多4字节的备份SRAM,以及广泛的增强I / O的连接到两条APB总线和外设,两个AHB总线和一个32位的多AHB总线矩阵。

所有STM32F407ZG设备提供3个12位ADC,两个DAC,1个低功耗RTC,12个通用16位定时器,其中包括两个用于电机控制的PWM定时器,两个通用32位定时器。一个真正的随机数发生器(RNG)。他们还配备了标准和先进的通信接口。

3.STM32F407ZG参数。

STM32F407ZG存储器程序闪存(KB) 1024 RAM(KB) 192 。

STM32F407ZG性能参数,工作频率(兆赫) 168 。

16位定时器(IC / OC / PWM) 12(24/24/30)

32位定时器(IC / OC / PWM) 2(8/8/8)

A / D转换器 3X12位 。

D / A转换器 2X12位 。

通信接口 3xSPI 2xI2S 2xI2C; 4xUSART 2xUART 两个USB OTG(FS + FS / HS); 。

2xCAN 1xSDIO 以太网MAC10/100 的I / O 114 。

电压(V):1.8到3.6 。

4.STM32F407ZG封装与引脚。

LQFP144

stm32f407待机功耗的相关图片

stm32f407待机功耗

stm32f411和407区别是:

stm32f407:又称STM32F4,由ST(意法半导体)开发的一种高性能微控制器。采用了90纳米的NVM工艺和ART。特点不同。stm32f411:按片内Flash的大小可分为三大类:小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。

stm407和417有区别吗的相关图片

stm407和417有区别吗

疑问

在做待机唤醒实验时,会有这样的疑问:只有进入待机模式的代码,那么唤醒是如何唤醒的?

原理

(此节主要针对待机唤醒原理进行简单介绍,可以根据自己情况自动略过)

STM32F4待机模式

在系统或电源复位以后,微控制器处于运行状态。运行状态下的 HCLK 为 CPU 提供时钟,内核执行程序代码。当 CPU不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。

STM32F4 的 3 种低功耗模式。

在这三种低功耗模式中,最低功耗的是待机模式,在此模式下,最低只需要 2.2uA 左右的 电流。停机模式是次低功耗的,其典型的电流消耗在350uA 左右。最后就是睡眠模式了。

进入/退出待机模式

拓展:

在进入模式的第三步:将WUF位清零,查看寄存器PWR_CSR。

清零需要通过PWR_CR进行配置:CWUF位置1。

退出模式

根据图1及下面stm32部分时钟树可知,在待机的状态下,PLL、HSI 和 HSE 振荡器被断电、1.2V供电区别断电,可以认为只有LSI、LSE振荡器在工作,因此RTC、独立看门狗可以工作,从而进行待机唤醒。(还有WKUP上升沿、NRST复位)

代码

#include "wkup.h"。

#include "led.h"。

#include "delay.h" 。

#include "usart.h" 。

//系统进入待机模式

void Sys_Enter_Standby(void)。

{

while(WKUP_KD); //等待WK_UP按键松开(在有RTC中断时,必须等WK_UP松开再进入待机)。

RCC_AHB1PeriphResetCmd(0X04FF,ENABLE);//复位所有IO口。

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//使能PWR时钟 。

PWR_BackupAccessCmd(ENABLE);//后备区域访问使能。

//这里我们就直接关闭相关RTC中断。

RTC_ITConfig(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA,DISABLE);//关闭RTC相关中断,可能在RTC实验打开了。

RTC_ClearITPendingBit(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA);//清楚RTC相关中断标志位。

PWR_ClearFlag(PWR_FLAG_WU);//清除Wake-up 标志。

PWR_WakeUpPinCmd(ENABLE);//设置WKUP用于唤醒。

PWR_EnterSTANDBYMode(); //进入待机模式。

//检测WKUP脚的信号

//返回值1:连续按下3s以上。

// 0:错误的触发 。

u8 Check_WKUP(void) 。

u8 t=0;

u8 tx=0;//记录松开的次数。

LED0=0; //亮灯DS0 。

while(1)

{

if(WKUP_KD)//已经按下了。

{

t++;

tx=0;

}else

{

tx++;

if(tx>3)//超过90ms内没有WKUP信号。

{

LED0=1;

return 0;//错误的按键,按下次数不够。

}

}

delay_ms(30);。

if(t>=100)//按下超过3秒钟。

{

LED0=0; //点亮DS0 。

return 1; //按下3s以上了。

}

}

}

//中断,检测到PA0脚的一个上升沿. 。

//中断线0线上的中断检测

void EXTI0_IRQHandler(void)。

{ 。

EXTI_ClearITPendingBit(EXTI_Line0); // 清除LINE10上的中断标志位。

if(Check_WKUP())//关机? 。

{

Sys_Enter_Standby(); //进入待机模式 。

}

}

//PA0 WKUP唤醒初始化。

void WKUP_Init(void)。

{

GPIO_InitTypeDef GPIO_InitStructure;。

NVIC_InitTypeDef NVIC_InitStructure;。

EXTI_InitTypeDef EXTI_InitStructure;。

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOA时钟 。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG时钟。

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //PA0。

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//输入模式。

GPIO_InitStructure.GPIO_OType = GPIO_OType_OD; 。

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; 。

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;//下拉。

GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化 。

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);//PA0 连接到中断线0。

EXTI_InitStructure.EXTI_Line = EXTI_Line0;//LINE0。

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件。

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发 。

EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE0。

EXTI_Init(&EXTI_InitStructure);//配置。

NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;//外部中断0。

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;//抢占优先级2。

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级2。

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中断通道。

NVIC_Init(&NVIC_InitStructure);//配置NVIC。

//(检查是否是正常开)机 。

if(Check_WKUP()==0)。

{

Sys_Enter_Standby(); //不是开机,进入待机模式 。

}

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

此处为wkup.c代码,比较简单,这里不再进行阐述,下面主要针对上述疑问进行解释。(通过查阅资料,自行理解的逻辑)

理解

首先,开机后,从int main()函数进行初始化,进行到WKUP_Init();对PA0进行相关配置,检查是否长按开机键,没有,进入Sys_Enter_Standby()函数,在函数内最后进入待机模式:PWR_EnterSTANDBYMode()。

PWR_EnterSTANDBYMode()配置在原理中已经进行介绍,不再重复,主要针对函数内的WFI进行介绍:

WFI: wait for Interrupt 等待中断,即下一次中断发生前都在此hold住不干活。

也就是说:当前大环境是正常运行状态,当运行于此处时,卡住不进行后续代码执行,相当于进行待机处理。

所以在初始化时,运行到WFI就卡在了一个地方。

当按键wkup被按下时,其实已经进行了待机唤醒处理,(从按下时,灯光亮了一下就可以看出来,程序已经开始运行了,没有继续卡在原处),此时是从int main()函数第一行开始重新运行。进行到WKUP_Init();对PA0进行相关配置,检查是否长按开机键。

没有按够3s,重复上述1、2步骤;

当按键达到3s后,跳过WKUP_Init()函数中的ifCheck_WKUP()函数,程序正常运行,从而达到唤醒功能。并配置PA0中断方式。

当再次按键达到3s后,进入中断,判断有没有按够3s。时间不够,继续运行正常状态;时间达到3s,Sys_Enter_Standby()。

再次进入待机模式。

void EXTI0_IRQHandler(void)。

{ 。

EXTI_ClearITPendingBit(EXTI_Line0); // 清除LINE10上的中断标志位。

if(Check_WKUP())//关机? 。

{

Sys_Enter_Standby(); //进入待机模式 。

}

}

stm32f407基本定时器能向下计数吗

stm407和417区别如下:

1、stm32f407又称STM32F4,由ST(意法半导体)开发的一种高性能微控制器,采用了90纳米的NVM工艺和ART。

2、stm32f417按片内Flash的大小可分为三大类小容量(16K和32K)、中容量(64K和128K)、大容量(256K、384K和512K)。

原文地址:http://www.qianchusai.com/STM32F407-90.html

绘景状物什么意思,绘景装饰工程有限公司

绘景状物什么意思,绘景装饰工程有限公司

ui文件夹可以删除吗,ui文件夹可以删除吗安卓

ui文件夹可以删除吗,ui文件夹可以删除吗安卓

韩版三星手机查首次通话,韩版三星手机查首次通话日期

韩版三星手机查首次通话,韩版三星手机查首次通话日期

元曲四大家是指哪四个,元曲四大家是指哪四个,及年代

元曲四大家是指哪四个,元曲四大家是指哪四个,及年代

lv男包官网价格图片,lv男包官网价格图片 新款

lv男包官网价格图片,lv男包官网价格图片 新款

1236什么意思爱情,1236爱情暗语是什么意思

1236什么意思爱情,1236爱情暗语是什么意思

what'syourname是什么意思

what'syourname是什么意思

关于温暖的议论文素材名人,关于温暖的议论文素材名人例子

关于温暖的议论文素材名人,关于温暖的议论文素材名人例子

华硕b360主板集成显卡顺序,华硕b360i gaming主板支持显卡

华硕b360主板集成显卡顺序,华硕b360i gaming主板支持显卡

烧烤哪里学,去哪里学烧烤味道最正宗

烧烤哪里学,去哪里学烧烤味道最正宗