c - 与外部 SPI 闪存通信时是否应该禁用中断?

标签 c embedded stm32 microcontroller embedded-resource

我在 STM32 MCU 上使用外部 SPI 闪存。

我想知道以下情况是否会导致闪存或读取缓冲区中的数据损坏?

如果ISR同时触发,而主进程正在与Flash进行通信(读/写/删除),并且ISR会占用一些时钟周期,然后返回通信。它会导致任何此类问题吗?我该如何继续调查?

注意:ISR 不访问 SPI 总线。

最佳答案

不,你会没事的。作为 SPI 总线上的主设备,STM32 生成决定通信速率的时钟信号。如果发生某些事情导致您的 CPU 速度变慢,您可能会注意到的唯一一件事是时钟线上的某些转换之间存在比必要的延迟更长的延迟,但这不会导致您正在通信的 SPI 设备出现任何问题。

如果您对此不确定,请尝试在代码中的许多不同位置放置 100 微秒的延迟,看看 SPI 通信是否会困惑。

关于c - 与外部 SPI 闪存通信时是否应该禁用中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77380754/

相关文章:

android - 为什么我们需要使用 android 工具链(或 NDK)来编译在 android 应用程序上下文中运行的 c/c++ 代码?

c - 如何在c中创建结构的新实例

c - 从trace32脚本语言访问监视变量

rust - 如何使用嵌入式 HAL 在 Rust 中配置 UART?

serial-port - 虚拟 COM 在 pyserial/Linux 上失败,但以其他方式工作

c - 窗口看门狗定时器STM32F4

c - 错误地初始化多维数组和内存

c - 如何还原对角读取的 NxN 矩阵?

c - .o 文件中 undefined symbol

c++ - 结构位打包和 LSB/MSB 歧义 C++