基于STM32分析栈、堆、全局区、常量区、代码区、RAM、ROM


在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量区、代码区,其中全局区中高地址分布着.bss段,低地址分布着.data段。
在一个STM32程序代码中,从内存高地址到内存低地址,依次分布着栈区、堆区、全局区(静态区)、常量区、代码区,其中全局区中高地址分布着.bss段,低地址分布着.data段。
STM32定时器分为高级定时器(TIM1与TIM8)、通用定时器(TIM2-TIM5、TIM9-TIM14)、基本定时器(TIM6、TIM7)。不同的定时器使用不同的时钟。
在嵌入式项目中,软件开发基本上都会使用到延时,那么,该用软件延时还是硬件延时?它们又有什么区别呢?
时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32。
自ARMv6架构开始,ARM根据处理器的性能和应用场景把处理器进一步划分为:Cortex-M、 Cortex-R、 Cortex-A三种不同类别的处理器系列。
本文基于ST公司Cortex-M内核的STM32来讲述其配置方法,其实也适用于其他公司(如:TI、NXP等)的Cortex-M芯片,原理都是一样的。
在STM32中,可以用内部时钟,也可以用外部时钟,在要求进度高的应用场合最好用外部晶体震荡器,内部时钟存在一定的精度误差。
使用一个固定容量的队列用来缓存接收到的数据,队列容量等于一帧数据的大小,每来一个数据就将数据往队列里面加......
Cortex-A7 内核支持开源操作系统 (Linux/Android),Cortex-M4 内核完美沿用现有的STM32 MCU生态系统,有助于开发者轻松实现各类开发应用,如实时应用的高阶人机交互、智能制造工业级应用、嵌入式神经网络前沿应用等。
STM32串口通信以及温度采集搞定,其中主要遇到STM32系列单片机时钟树的问题,串口通信遇到串口调试助手能够接收到数据但出现乱码现象。