还没过四级 发表于 2025-2-18 22:42

ATmega16单片机硬件SPI多字节连续发送

用ATmega16单片机的硬件SPI发送5个字节,这个时钟的时序是不是有点不对啊,有大哥给解答一下呗

weifeng90 发表于 2025-2-18 22:56

MOSI数据信号波形感觉不对

还没过四级 发表于 2025-2-19 09:52

weifeng90 发表于 2025-2-18 22:56
MOSI数据信号波形感觉不对

我知道啊因为发送的时钟有问题,本来应该是连续的40个时钟脉冲,结果变成了五组单独的8个脉冲,MOSI肯定有问题啊,但是就是找不到发送间隔出现的原因

xch 发表于 2025-2-20 19:06

还没过四级 发表于 2025-2-19 09:52
我知道啊因为发送的时钟有问题,本来应该是连续的40个时钟脉冲,结果变成了五组单独的8个脉冲,MOSI肯定 ...

"本来"应该是连续的40个时钟脉冲

这个本来不成立

幸福小强 发表于 2025-2-21 12:20

这个可以用MCC配置吗,用MCC配置的就没问题啊。你试试

慢醇 发表于 2025-2-23 00:03

如果 CPHA 设置为 0,但设备期望在时钟的下降沿采样数据,就会出现时序问题。

远芳侵古道 发表于 2025-2-23 07:11

SPI 有四种模式Mode 0-3,由 CPOL 和 CPHA 决定。

如果发送端和接收端的模式不匹配,会导致时序错误。

突然下起雨 发表于 2025-2-25 15:29

CPHA 决定了数据在时钟的哪个边沿进行采样。

chenqianqian 发表于 2025-2-25 20:50

从这个波形看数据线信号确实不正常

拿走一光年 发表于 2025-7-24 20:20

可能因未正确处理 SPI 传输完成中断,导致多字节发送时数据缓冲区未及时更新引发错误。

绒兔星球 发表于 2025-8-27 13:01

ATmega16 硬件 SPI 多字节连续发送:先初始化 SPI 为主机模式,使能 SPI;循环发送每个字节时,将数据写入 SPDR 寄存器,等待 SPIF 标志置位(表示发送完成),再发送下一字节,无需手动控制 SCK 线,硬件自动时序。

野玫瑰 发表于 2025-9-16 16:14

ATmega16 硬件 SPI 多字节连续发送:先初始化 SPI(主机模式,设置波特率、数据序)。发送时,循环中先将数据写入 SPDR 寄存器,等待 SPIF 标志置位(表示发送完成),再发送下一字节。无需软件延时,利用硬件标志确保连续传输,效率高于模拟 SPI,适合高速数据传输场景。
页: [1]
查看完整版本: ATmega16单片机硬件SPI多字节连续发送