单片机原理学习
关联UART、SFR(special function register)硬件外设寄存器、单片机RAM的存储、GPIO时钟源、外部中断、HSE、MCO(外部输出时钟引脚)
UART它作为单片机的一个硬件模块,与主处理器(CPU)协同工作,帮助完成数据通信任务。因此,它是一个 外设,而不是处理器的一部分。
UART 通常是通过 APB(Advanced Peripheral Bus) 总线与 MCU 内部的时钟进行连接的。
定时器 用于产生周期性的时间中断,使得单片机可以执行定时任务。
一.SFR寄存器
SFR 是 特殊功能寄存器(Special Function Register)的缩写,在微控制器(如 8051、STM32 等)中,SFR 是指一些 控制外设 或 处理器功能 的寄存器
这些寄存器通常用于直接与硬件交互,并且它们通常具有特殊的功能和操作方式。SFR 是微控制器中的 内存映射寄存器,用于配置和控制外部硬件组件,如定时器、串口、GPIO 等。
常见的 SFR 功能:
SFR 寄存器的存储位置
SFR:是 硬件外设寄存器,每个外设控制器(如 UART、ADC、GPIO)都通过一组 SFR 来配置和控制
SFR 寄存器的例子
二.单片机RAM存储哪些东西
1. 程序栈(Stack)
2. 全局变量和静态变量
static
关键字声明的变量)虽然作用域通常在局部,但它们的生命周期与程序运行周期相同,因此也存储在 RAM 中。3. 局部变量
4. 缓冲区和临时数据
5. 堆区(Heap)
malloc
、free
或者其他内存管理函数)。6. 中断服务程序的上下文
7. I/O 寄存器和标志位
8. 缓存数据
9. 实时数据和操作状态
10. DMA(直接内存访问)缓冲区
如果单片机支持 DMA,则数据传输过程中的缓冲区通常会存储在 RAM 中,DMA 控制器直接与 RAM 进行数据交换。
三.GPIO 时钟来源
GPIO 引脚的时钟通常由微控制器的 系统时钟 或 外设时钟 供给。
大部分微控制器会将 GPIO 模块的时钟信号 独立管理,因此你需要 显式地使能 GPIO 的时钟才能操作 GPIO 引脚。在 STM32 等 MCU 中,通常需要通过时钟控制寄存器来 打开 GPIO 时钟。
例如,在 STM32 系列中,GPIO 引脚的时钟由 RCC(Reset and Clock Control) 模块管理。每个 GPIO 端口(如 GPIOA、GPIOB 等)都有一个独立的时钟源,你必须在配置 GPIO 引脚之前,先确保相应的时钟已被启用。
如何使能 GPIO 时钟
通常,通过访问 RCC 寄存器 来使能 GPIO 时钟。例如,STM32 的代码中,时钟使能通常使用类似如下的语法:
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
在这行代码中,RCC_AHB1Periph_GPIOA
是控制 GPIOA 时钟的标志,RCC_AHB1PeriphClockCmd
函数用于使能或禁用该时钟。
GPIO 的时钟源
GPIO 引脚的时钟通常来自微控制器的 AHB 或 APB 总线时钟:
外部中断时钟
如果 GPIO 引脚被配置为 外部中断模式,例如响应外部触发信号(如按键、传感器等),那么它需要依赖 外部中断控制器(例如 STM32 的 EXTI)以及 外部中断时钟。这些时钟信号也通常由微控制器的时钟系统提供。
例如,STM32 中的外部中断系统需要时钟支持:
// 使能外部中断控制器时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
外部中断时钟指的是单片机内部用于处理外部中断的时钟信号。虽然外部中断通常是由外部信号触发的,但中断的处理、调度和响应是由单片机内部的时钟来管理的。中断处理的时钟信号一般包括以下几个部分:
外部中断时钟源:有些微控制器允许外部信号直接驱动一个独立的时钟输入,用于外部中断处理。在这种情况下,时钟信号通常来自 外部时钟源(例如,外部晶振或时钟发生器)。
内部时钟分配:即使外部中断源来自外部事件,外部中断的响应处理仍然是由 内部时钟系统 控制的。微控制器的中断控制器(如 NVIC)会在内部时钟的节奏下处理和分发外部中断。时钟的节奏决定了外部中断的触发和响应延迟。
具体实现
在一些具体的微控制器中,如 STM32、AVR、PIC 等,外部中断通常由如下几个模块配合时钟系统共同实现:
外部中断时钟源是指在微控制器(MCU)中用来处理外部中断的时钟信号来源。
许多微控制器允许使用外部时钟信号作为外部中断的时钟源。在这种情况下,外部设备(如外部时钟发生器或信号源)提供时钟信号,MCU通过专门的引脚将时钟信号输入到系统中。
HSE(High-Speed External)引脚的作用就是允许外部时钟源输入到系统中
时钟源的连接:
你可以将一个 MCU 的时钟输出连接到另一个 MCU 的 HSE 引脚,用作该 MCU 的时钟源。这样,第二个 MCU 就可以利用第一个 MCU 的时钟信号来同步其工作。
一些微控制器支持将内部时钟信号输出到其引脚上。例如,某些 MCU 配备了专门的时钟输出引脚(如 MCO,Microcontroller Clock Output)。这个引脚可以输出当前 MCU 的系统时钟或经过 PLL 处理后的时钟。
作者:q2380957683