DMA 有什么作用
是 MCU 的数据搬运工,配置完成后,可以自动完成数据的搬运操作,无需 MCU 参与,可以降低 MCU 压力
全字,半字,字节,分别对应多少【位】
32 16 8
DMA 的数据方向可以设置为
外设存储器到内部存储器、内部存储器到外设存储器、内部存储器到内部存储器
在 STM32F103ZET6 中有几个 DMA 模块总计多个 DMA 通道
DMA1 DMA2
7+5个通道
使用定时器输出标准 PWM 需要配置哪些内容
1.TIM --> PSC 预分频倍数、ARR 自动重装载寄存器 控制频率
2.PWM 的工作模式、有效电平配置、占空比配置中的核心寄存器 CCR
根据工作模式,有效电平配置和 CRR 、ARR 占比控制占空比
简述 一下I2C 内容
I2C 起始信号 I2C 终止信号 I2C发送数据0和1
起始信号 SCL高电平周期内,SDA 由高电平拉低
终止信号 SCL高电平周期内,SDA 由低电平拉高
发送0 SCL高电平周期内,SDA 保持低电平
发送1 SCL高电平周期内,SDA 保持高电平
I2C 主机发送数据到从机的数据帧组成
起始信号 + 7 位设备地址 + 写入数据标志位(0) + 从机应答 ACK
- 8 位设备寄存器地址 + 从机应答 ACK
- 8 位数据为 + 从机应答 ACK
- 停止信号
主机如果需要连续的读取从机数据,在接受数据时给予从机的应答信号是?如果不再接受数据,给予从机的应答信号是?
不接收 NACK 1
接收 ACK 0
简述 STM32 基于 EPS8266 WiFi 模块 利用 MQTT 协议连接 MQTT 云平台的流程
a. ESP8266 /其他 WIFI 模块 利用 USART 进行 MCU 通信,借助于 AT 指令连接热点,以及 TCP 服务连接 MQTT 云平台
b.基于 MQTT 协议,发送 MQTT CONNECT 数据包到 MQTT 云平台,进行连接操作
c. 如果有订阅服务需求,需要发送 MQTT 协议的订阅数据包到 MQTT 云平台
d.提交数据/发布数据到 MQTT 云平台 ,需要发送 MQTT 发布数据包到 MQTT 云平台
MQTT 协议主要的组成部分有
固定头 当前 MQTT 协议功能码 + 功能码标志位
可变头
有效载荷
MQTT 协议有哪些常用功能
CONNECT PUBLISH SUBSCRIBE
RS485 中 发送数据 1 和发送数据 0 的方式
.A端子电平 - B 端子电平 > 200mV 发送1
B端子电平 - A 端子电平 > 200mV 发送0
RS485 发送数据时,一般情况下都会将发送高电平对应当前 RS485 供电电压,范围是 3.3V~6V
RS485 通信芯片怎么确定为发送模式或者接收模式
RE、DE 高电平 发送模式
RE、DE 低电平 接收模式
ModBus 协议的组成内容
设备地址/地址域 功能码 数据 差错校验
ModBus 协议中的数据类型有哪些
数据位数
离散量输入 1 只读
线圈 1 读写
输入寄存器 16 只读
保持寄存器 16 读写
ModBus 协议中的 T1.5 和 T3.5 分别是什么含义,如何计算
指的是数据传递的间隔
T1.5 一个数据帧内,两个字节发送间隔为1.5个发送字节周期时间
T3.5 两个数据帧之间的时间间隔,主机给从机发送数据结束后,下一次发送需要等待 3.5 个发送字节周期时间
字节传递事件的计算方式
T1.5 = 1.5 * (1 / MCU 频率 * 10)
T3.5 = 3.5 * (1 / MCU 频率 * 10)
I2C SPI RS485 三种通信协议对比
I2C SPI RS485
距离 板内 板内 1200+
速度 慢 快 较快
引脚需求 SCL + SDA MISO MOSI SCLK SS/CS TX + RX + Control
工作模式 半双工 全双工/半双工/单工 半双工
SPI 硬件层面需要几根线和 MCU 进行连接,分别是哪些
4根
SCLK 复用推挽输出
MISO/sdo 浮空输入
MOSI/sdi 复用推挽输出
CS/SS 复用推挽输出
在一主多从的情况下,SPI 主机设备如何选择指定从机设备
通过 CS/SS 片选线通信,拉低对应电平表示选定通信
SPI 有哪些工作模式,找出一种描述数据发送和接收和 数据 0 1
工作模式 CPOL(时钟极性) 有效电平 CPHA(时钟相位) 采样边沿
SPI0 0 高 0 1
SPI1 0 高 1 2
SPI2 1 低 0 1
SPI3 1 低 1 2
【SPI0 模式】
主机发送
0 时钟线下降沿位置 MOSI 对应低电平
1 时钟线下降沿位置 MOSI 对应高电平
主机读取/采集
0 时钟线上升沿位置 MISO 对应低电平
1 时钟线上升沿位置 MISO 对应高电平
DMA 如果需要搬运多组数据,需要配置哪些内容
- DMA 数据个数
- DMA 开启数据增量
- DMA 需要设置数宽
DMA 看做一个数组进行循环操作
DMA 需要设置数宽 ==> 数组中元素占用内存空间字节数,或者数据类型
DMA 数据个数 ==> 数组元素个数,循环控制次数
DMA 开启数据增量 ==> 开启循环
DMA 操作需要指定数据源地址和数据目标地址
数据拷贝操作的源数组和目标数组
I2C 协议下主机从从机读取数据的数据帧组成
起始信号 + 7 位设备地址 + 写入标志位 + ACK
- 8 位寄存器地址 + ACK
起始信号 + 7 位设备地址 + 读取标志位 + ACK - 从机 8 位数据 + 主机 ACK
- 停止信号
RTT 可以控制线程执行互斥控制的有哪些方式
互斥量 + 信号量
RTT 中的线程间通信有哪些方式
消息队列 用于自定义数据包大小,不建议过大!!!
邮箱 发送数据为 4 字节