stm32h750vet6的总结(1)

           基于高性能Arm Cortex-M7 32位RISC内核,工作频率高达480 MHz.集成了高速嵌入式存储器和高达2 MB的双组闪存、高达1 MB的RAM(包括192 KB的TCM RAM、高达864 KB的用户SRAM和4 KB的备份SRAM),以及连接到APB总线的各种增强型I/O和外设, AHB 总线、2x32 位多 AHB 总线矩阵和支持内部和外部存储器访问的多层 AXI 互连。所有器件均提供三个ADC、两个DAC、两个超低功耗比较器、一个低功耗RTC、一个高分辨率定时器、12个通用16位定时器、两个用于电机控制的PWM定时器、<>个低功耗定时器和一个真随机数发生器(RNG)。这些器件支持四个用于外部Σ-Δ调制器(DFSDM)的数字滤波器。它们还具有标准和高级通信接口。

        

比如我们想得到不同定时器的主频,通过上面的框图,可以方便地获得如下信息:

 

SYSCLK(Hz) = 400000000 (CPU Clock)
HCLK(Hz) = 200000000 (AXI and AHBs Clock)
AHB Prescaler = 2
D1 APB3 Prescaler = 2 (APB3 Clock 100MHz)
D2 APB1 Prescaler = 2 (APB1 Clock 100MHz)
D2 APB2 Prescaler = 2 (APB2 Clock 100MHz)
D3 APB4 Prescaler = 2 (APB4 Clock 100MHz)
因为 APB1 prescaler != 1, 所以 APB1 上的 TIMxCLK = APB1 x 2 = 200MHz;
因为 APB2 prescaler != 1, 所以 APB2 上的 TIMxCLK = APB2 x 2 = 200MHz;
APB4 上面的 TIMxCLK 没有分频,所以就是 100MHz;
APB1 定时器有 TIM2, TIM3 ,TIM4, TIM5, TIM6, TIM7, TIM12, TIM13, TIM14,LPTIM1
APB2 定时器有 TIM1, TIM8 , TIM15, TIM16,TIM17
APB4 定时器有 LPTIM2,LPTIM3,LPTIM4,LPTIM5

对后期的dma的外设和寄存器之间的访问有重大作用。

c语言的复习:(基础不好的小伙伴可以再次的看看,回顾回顾,复习复习啊) 

        推荐一本书:C Primer Plus(第六版)

全局变量和局部变量:

                在函数内部定义的变量是局部变量,而在函数之外定义的变量称为外部变量,也就是全局变量。

在一个函数内部定义的变量是内部变量,它只在本函数范围内有效,也就是说只有在本函数内才能使 用它们,在此函数以外是不能使用这些变量的,这称为局部变量。
        
程序设计中,建议不要创建太多的全局变量,主要是出于以下三点考虑:
全局变量在程序的执行过程中都占用存储单元,而不是仅在需要时才占用存储单元。
函数的通用性降低了,因为函数在执行时要依赖于其所在的外部变量。如果将一个函数移植到另一个
文件中,还要将有关的外部变量及其值一起移植过去。
使用全局变量过多,会降低程序的清晰性,特别是多个函数都调用此变量时。
用 static 声明一个变量的作用:
对局部变量用 static 声明,则使用该变量在整个程序执行期间不释放,为其分配的的空间始终存在。
全局变量用 static 声明,则该变量的作用域只限于本文件模块(即被声明的文件中)。
栈(stack)空间,用于局部变量,函数调时现场保护和返回地址,函数的形参等。
堆(heap)空间,主要用于动态内存分配,也就是说用 malloc,calloc, realloc 等函数分配的变量空间是
在堆上。以 STM32H7 为例,堆栈是在 startup_stm32h743xx.s 文件里面设置:
MAP文件:(几个名词的解释)
        
Code (inc. Data) :显示代码占用了多少字节。
◆ RO Data :显示只读数据占用了多少字节。
RW Data :显示读写数据占用了多少字节。
ZI Data :显示零初始化的数据占用了多少字节。
Debug :显示调试数据占用了多少字节,
HTM文件的分析:
MDK 将工程全编译,且没有错误后,就会生成此文件。以开发板配套例子为例,htm 文件位于路径:
\Project\MDK-ARM(uV5)\Objects。
此文件的最大作用就是基本统计了所有被调用函数的栈 stack 使用情况(不考虑中断嵌套)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32H750VBT6是一款基于ARM Cortex-M7内核的单片机芯片,具有高性能和低功耗的特点。它是以H7系列为代表的STM32微控制器产品中的一员,广泛应用于嵌入式系统、工业控制、智能家居等领域。 该芯片的最小系统原理图如下: ![STM32H750VBT6最小系统原理图](https://img-blog.csdn.net/20180827093253485?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpdGVzMTg5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80) 最小系统由STM32H750VBT6芯片、时钟电路、复位电路、调试接口等组成。主要包括以下几个部分: 1. 时钟电路:使用外部晶体振荡器提供稳定的时钟信号。X1为晶体振荡电路,通过电容C14和C15形成谐振回路,提供32.768kHz的低频时钟信号。X2为主频晶振电路,通过电容C2和C3形成谐振回路,提供高频时钟信号,实现MCU运行。同时使用电容和电阻分频电路,并通过时钟分频器将主频时钟分频,得到系统时钟信号。 2. 复位电路:使用按键K1实现手动复位,或使用电路RY1实现自动复位。按下复位键或电源重新上电时,VDD会进入一个低电平状态,MCU内部控制逻辑和外设均会被初始化。VDD复位电路部分通过电阻、电容和二极管形成延时电路,确保芯片在上电后先进行初始化,避免不可预测的错误。 3. 调试接口:使用SWD接口调试和下载程序,实现对MCU的编程和调试。通过JTAG/SWD接口,可实现它对内部FLASH编程、内核调试/跟踪、任务观察和存储器读/写操作。 此外,还有电源滤波电路、稳压器、MCU IO引脚等,构成了完整的STM32H750VBT6最小系统。这个原理图可以用于仿真、测试和系统搭建等应用环境,为嵌入式开发和调试提供重要的参考数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值