我正在尝试使用中断在SPI上发送可变大小的字节数组 . 该系统由两个核STM32L432板组成 . 发送器板工作正常,但我遇到接收器板问题 . 具体来说,我注意到通常会删除一些字节 . 除了CubeMX提供的默认初始化之外,我的init函数中还有以下设置:

// Trigger RXNE when the FIFO is 1/4 full

LL_SPI_SetRxFIFOThreshold(sw.spi_sw2pc,LL_SPI_RX_FIFO_TH_QUARTER);

// Enable RXNE interrupt

LL_SPI_EnableIT_RXNE(sw.spi_sw2pc);

// Enable SPI

if((SPI3->CR1 & SPI_CR1_SPE) != SPI_CR1_SPE)

{

// If disabled, I enable it

SET_BIT(sw.spi_sw2pc->CR1, SPI_CR1_SPE);

}

SPI设置为10 Mbit / s . 可以说通讯速度太快了吗?

以下是IRQ处理程序和回调 .

IRQ handler

void SPI3_IRQHandler(void)

{

/* USER CODE BEGIN SPI3_IRQn 0 */

/* Check RXNE flag value in ISR register */

if(LL_SPI_IsActiveFlag_RXNE(SPI3))

{

/* Call function Slave Reception Callback */

SW_rx_callback();

}

/* USER CODE END SPI3_IRQn 0 */

/* USER CODE BEGIN SPI3_IRQn 1 */

/* USER CODE END SPI3_IRQn 1 */

}

Callback

void SW_rx_callback(void)

{

// RXNE flag is cleared by reading data in DR register

while(LL_SPI_IsActiveFlag_RXNE(SPI3))

recv_buffer[recv_buffer_index++] = LL_SPI_ReceiveData8(SPI3);

if(LL_SPI_GetRxFIFOLevel(SPI3) == LL_SPI_RX_FIFO_EMPTY)

{

// If there are no more data

new_data_arrived = true;

memset(recv_buffer,'\0',recv_buffer_index);

recv_buffer_index = 0;

}

}

预先感谢您的帮助 .

cubemx spi 中断_STM32 SPI在使用中断时丢弃数据相关推荐

  1. 硬件部分第三次培训——LCD1602、串口中断、SPI

    文章目录 显示屏LCD介绍 LCD1602的使用 1602的接口说明 1602的主要技术参数 1602内部系统结构图 1602基本操作时序 写操作时序图 1602的命令指令码 忙检测函数 相关代码 串 ...

  2. stm32的rxne和idle中断_STM32 HAL CubeMX 串口IDLE接收空闲中断+DMA

    历程详解 详解包括: 中断原理讲解 例程流程详解 库函数分析详解 对应寄存器介绍 对应函数介绍 对应注释详解 本篇文章提供两种方法: 一种是 :IDLE 接收空闲中断+DMA 一种是: IDLE 接收 ...

  3. hal库开启中断关中断_STM32对HAL库的定时器中断

    从串口中断,到外部中断再到现在的定时器中断,越来越感觉HAL库应用比较好用,虽然一开始理解上面有点怪,但是网上查询一下就能够学会. 定时器中断分为两个重点,1.在应用CUBEMX时配置定时器的分频数以 ...

  4. 基于cubemx的stm32HAL库SPI通信写LCD显示屏

    之前学习了如何使用LCD,记录一下,关于spi部分是从野火的资料中截取,也会加入我自己的备注,便于理解,代码部分在后面,请耐心看完. 一.SPI协议简介 SPI 协议是由摩托罗拉公司提出的通讯协议 ( ...

  5. hal库开启中断关中断_stm32的HAL库开发学习笔记之外部中断

    外部中断 中断线----EXTI线0~15(对应外部IO口的输入中断) 每个IO口都可以作为外部中断输入 每个中短线可以独立的配置触发方式(上升沿,下降沿,双边沿),触发/屏蔽,专用状态位. GPIO ...

  6. stm32 串口2空闲中断死机_STM32串口之空闲中断

    NBiot模块一般都是串口接口,使用AT指令集,对接中国移动onenet平台.先用串口助手去测试,流程测试OK之后需要在MCU上重新写一遍. STM32串口IDLE中断 IDLE其实是空闲的意思.ID ...

  7. Linux中断子系统(一)中断控制器GIC架构

    Linux中断子系统(一)中断控制器GIC架构 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客: Linux中断子系统(一)中 ...

  8. Linux中断子系统(二)中断控制器GIC驱动分析

    Linux中断子系统(二)中断控制器GIC驱动分析 备注:   1. Kernel版本:5.4   2. 使用工具:Source Insight 4.0   3. 参考博客: Linux中断子系统(一 ...

  9. xilinx zynq 7010/7020 中断/中断向量/GIC向量/GPIO中断

    上图所示GIC左边的称为中断请求源,它们产生中断请求.所有的中断请求都可以发送到GIC通用中断控制器,所以它是一个集中式的中断请求中心.GIC根据请求源的属性(enables, disables, m ...

最新文章

  1. 如何低价坐飞机头等舱
  2. 每个即将成为或想成为网络工程师最想看的文章
  3. 原神:创新和成功有目共睹,游戏可玩性历久弥新,戒骄戒躁保初心
  4. Jupyter Notebook——Windows平台上中如何切换虚拟环境
  5. pycharm 中Python 模板的自动生成
  6. 中内连和外联的去区别_外联请客丨第一百七十四期:鱼来了铁板烧请你吃铁板烤鱼和香辣牛蛙虾!...
  7. Java框架全开源商城PC+手机版+微商城独立版+全开源系统源码
  8. 蓝色动力(DVD版)GHOSTXP SP3纯净选择版V2012.06
  9. 小麦(Wheat)-玉米(Maize)-水稻(Rice) 数粒软件
  10. Exploiting Visual Artifacts to Expose Deepfakes and Face Manipulations论文详记
  11. mysql连接错误state 08S01
  12. 微信单参数二维码回调配置
  13. 数据分析系列:绩效(效率)评价与python实现(层析分析、topsis、DEA)
  14. ES6 -- 简单笔记总结
  15. 国民技术MCU产品类别介绍——速记分类
  16. Java实现设置窗口颜色和大小
  17. g723源码详细分析-15-静音检测
  18. aarch64指令集_ARMv8-AArch64简述
  19. iOS开发--封装的几个小动画
  20. 仅在ACCESS窗体设计中,实现数据文件连接的方法

热门文章

  1. 【IDEAEclipse】4、IntelliJ IDEA上操作GitHub
  2. 了解Objective-C中NSAutoreleasePool使用方法
  3. RMAN数据库恢复 之归档模式有(无)备份-丢失数据文件的恢复
  4. 简繁互相切换的字库(比较全)
  5. CUDA编译器nvcc的用法用例与问题简答
  6. DOS 常用命令大全
  7. 使用Vue CLI 3将基于element-ui二次封装的组件发布到npm
  8. 分布式监控系统开发【day38】:报警阈值程序逻辑解析(三)
  9. 每日学习之 2016.07.27
  10. 用C语言扩展lua模块(入门)