-
时钟
- 定义
周期型的0、1信号
时钟信号由"心脏"时钟源产生,通过"动脉"时钟树传播到整个芯片中。
SYSCLK系统时钟,由HSI、HSE、PLLCLK三选一。
HCLK是AHB总线时钟, PCLK是APB总线时钟。
使用某个外设,必须要先使能该外设时钟 - 系统时钟配置
- 作用
- 实现芯片里电路同步。 寄存器在时钟上升沿时,把最终运算结果写入寄存器,即把寄存器输入端(值稳定)传给输出端。串口需要固定的波特率通信,IIC需要时钟线。
- 决定数字电路的运行速度
- 时钟源
- 晶振(HSE高速外部时钟),使用PLL(锁相环)倍频
- RC 振荡电路(HSI高速内部时钟),精度相对较差
- 定义
-
寄存器
寄存器是特殊的存储器,可以实现对单片机各个功能的控制。寄存器就是单片机内部的控制机构。
-
APB总线协议
APB 看成一种"线",这种线是来连接两个设备,一个是master,一个是slave,所有数据传输都是master来控制,slave来回应。
数据传输在PCLK时钟上升沿进行
进行一次数据传输至少需要两个时钟周期
-
UART总线协议
通信过程:
交叉连接两台设备的TXD、RXD
配置两台设备的波特率、停止位、奇偶校验位,保持一致
发送数据,从起始位到结束位,整个数据包以串行的方式,从发送设备端送至接收设备端
接受端以预配置的波特率 对数据线进行采样,
接收设备采样的数据,首先会丢弃数据帧中的起始位、奇偶检验位和停止位,剩下的是有效数据位
全双工通信
缺点:异步通信*(无时钟线),和UDP类似,无法确保接收端收到数据
-
I2C总线协议
使用示波器和逻辑分析仪调试
用示波器观察总线上的波形是否有畸变
用逻辑分析仪做数据解析。
半双工通信
-
中断
- NVIC相关寄存器:
- 中断使能寄存器,打开中断,每个位对应一个外部中断
- 中断除能寄存器,关闭中断,每个位对应一个外部中断
- EXTI相关寄存器
- 中断屏蔽寄存器,位值为0表示屏蔽相应线上的中断请求,位值为1表示开放相应线上的中断请求
清除 - 请求挂起寄存器, 状态标记,可以用来清除状态。位值为0表示相应线上没有触发中断请求,位值为1表示相应线上触发请求。在中断处理函数中可以通过写入位值1来清除中断标记,把相应值变成0。
- 中断屏蔽寄存器,位值为0表示屏蔽相应线上的中断请求,位值为1表示开放相应线上的中断请求
- 使用中断
- NVIC相关寄存器:
-
音频codec芯片
Soc使用I2C协议读写codec芯片的寄存器,来配置codec芯片。 使用I2S协议传输音频数据。
播放时,DMA的方向是内存到外设, 目的地址是I2S的数据寄存器,然后使用I2S协议把音频数据发送到codec芯片
嵌入式驱动学习
qq_288086972025-05-10 18:29
相关推荐
站在巨人肩膀上的码农2 小时前
全志T507 音频ALSA核心层注册流程分析车载操作系统---攻城狮11 小时前
[驱动开发篇] Can通信快速入门手册 - 应用篇Natsume17102 天前
嵌入式开发:GPIO、UART、SPI、I2C 驱动开发详解与实战案例S,D3 天前
MCU引脚的漏电流、灌电流、拉电流区别是什么Despacito0o3 天前
ESP32-s3摄像头驱动开发实战:从零搭建实时图像显示系统小米里的大麦13 天前
014 Linux 2.6内核进程调度队列(了解)Svan.14 天前
Portable Watch:基于STM32的便携智能手表楼台的春风16 天前
【Linux驱动开发 ---- 4_驱动开发框架和 API】楼台的春风16 天前
【Linux驱动开发 ---- 1.1_Linux 基础操作入门】sukalot16 天前
window显示驱动开发—输出合并器阶段