[AT32F455] SPI 主机发送完数据后,MOSI脚会被拉高电平,如何解决这个问题

[复制链接]
209|12
KingCC1123 发表于 2026-7-4 15:03 | 显示全部楼层 |阅读模式
OceanDepths 发表于 2026-7-8 08:17 | 显示全部楼层
发送完成后mosi当作io自己控制一下就行了
qinlu123 发表于 2026-7-7 12:50 | 显示全部楼层
MOSI不是主机控制的吗
dffzh 发表于 2026-7-7 13:52 | 显示全部楼层
数据发送完成后,SPI的CS脚变成空闲状态,CLK也不会产生,哪怕MOSI是高电平,也不会有什么影响吧?还是说你们是低功耗产品,要控制空闲时候的状态?
TimelessEcho 发表于 2026-7-15 09:46 | 显示全部楼层
硬件 SPI 移位寄存器最后一位 bit 决定空闲 MOSI 电平:
发送字节最高位是 1 → 传输结束移位寄存器残留 1,MOSI 硬件复用推挽持续拉高;
发送字节最高位是 0 → 传输结束 MOSI 保持低;
SPI 外设只要未失能,MOSI 引脚由硬件移位寄存器控制,GPIO 寄存器无法直接覆盖电平;
多从机总线、LCD/Flash 等外设会误识别最后一位电平,导致通信异常。
稳稳の幸福 发表于 2026-7-13 09:07 | 显示全部楼层
SPI 发送完成后,关闭 SPI 外设,把 MOSI 引脚切为普通 GPIO 输出,强制拉低;下次发送前再切回 SPI 复用功能。
捉虫天师 发表于 2026-7-15 14:43 | 显示全部楼层
传输完成后,临时切 GPIO 普通输出,拉低 MOSI,再切回复用 SPI,彻底覆盖残留高电平
zhuotuzi 发表于 2026-8-13 17:09 | 显示全部楼层
SPI 主机发送完一帧数据,MOSI 在空闲状态变成高电平,而你期望空闲是低电平;或者发送结束硬件自动置高,干扰从设备。
yiyigirl2014 发表于 2026-8-24 19:08 | 显示全部楼层
SPI 标准本身没有规定传输结束后 MOSI 必须是什么电平,MOSI 空闲电平由:SPI 模式 (CPOL/CPHA)、外设寄存器配置、硬件复用、驱动逻辑、GPIO 推挽 / 开漏共同决定。
643757107 发表于 2026-9-7 17:55 | 显示全部楼层
SPI 主机一帧数据发送完成之后,MOSI 引脚变成高电平,不是保持低电平 / 不是空闲状态;很多 MCU 硬件 SPI 发送结束 MOSI 会输出最后一位的电平,如果最后一位是 1,发完就拉高,这是硬件行为。
小灵通2018 发表于 2026-9-12 16:44 | 显示全部楼层
SPI 协议只保证CS 有效期间的 MOSI/SCK 时序;CS 拉高之后 MOSI 电平由 MCU 硬件决定,不是 SPI 协议强制的。
xinxianshi 发表于 2026-9-18 18:57 | 显示全部楼层
SPI 协议本身没有强制 MOSI 空闲必须为低,这个是 MCU 外设特性,不是协议标准。如果你的从机要求通信结束后 MOSI 必须拉低,就需要处理。
星辰大海不退缩 发表于 2026-9-18 21:15 | 显示全部楼层
MOSI发完被拉高多是空闲电平或复用配置问题:可设为推挽输出并固定空闲电平,同时检查片选时序与从机的上拉电阻。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0