首页 > 其他分享 >STM32F3系列 SPI通讯缺帧问题(基于LL库)

STM32F3系列 SPI通讯缺帧问题(基于LL库)

时间:2023-12-31 16:55:32浏览次数:37  
标签:DMA LL 缺帧 SPI DMA1 GPIO CHANNEL

STM32F3系列 SPI通讯缺帧问题(基于LL库)

  • 芯片型号:STM32f303RBT6
  • 开发软件:MDK5 & CubeMX & VS Code

现象描述

主机使用SPI-DMA中断发送数据,从机接收数据总是少3个数据(16bit)。

错误原因

主机SPI发送完成后,片选线拉高太快,导致从机片选消失,故最后几个数据没有接收到;
错误图片

解决方法

在SPI发送数据后,延迟一段时间,拉高片选(CS)线。
程序:

    if(LL_DMA_IsActiveFlag_TC5(DMA1))
    {
        LL_DMA_DisableChannel(DMA1,LL_DMA_CHANNEL_5);
        LL_SPI_DisableDMAReq_TX(SPI2);
        LL_DMA_SetMemoryAddress(DMA1,LL_DMA_CHANNEL_5,(uint32_t)tran_data);
        LL_DMA_SetDataLength(DMA1,LL_DMA_CHANNEL_5,20);
        LL_DMA_EnableChannel(DMA1,LL_DMA_CHANNEL_5);
        LL_DMA_ClearFlag_TC5(DMA1);
        Mx_Delay_ms(1);          // 加上延时后 丢数据现象消失
        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);
    }

注意这里不要用HAL库自带的延迟,要不然会在中断中卡死。可以使用正点原子的中断程序,或者字节写一个中断程序。

标签:DMA,LL,缺帧,SPI,DMA1,GPIO,CHANNEL
From: https://www.cnblogs.com/muheandrabbit/p/17937696

相关文章

  • Microsoft 365 开发:如何通过PnP Powershell批量删除文件夹或文件等
    51CTOBlog地址:https://blog.51cto.com/u_13969817通常删除文件夹可以在UI界面操作比较方面,但是如果想快速的删除文件夹以及其childfolder,该如何操作呢?解决方案:本文将介绍如何使用PnPPowerShell脚本删除SharePoint文档库中的文件夹:第一步是通过运行cmdlet:ConnectPnPOnline来......
  • 像Google SRE一样OnCall【转载】
    在GoogleSRE的著作《Google运维解密》[1](原作名:SiteReliabilityEngineering:HowGoogleRunsProductionSystems)中,GoogleSRE的关键成员们几乎不惜用了三个章节的篇幅描述了在Google他们是如何OnCall的。GoogleSRE实践中,有一个广为人知的理念:减少琐事,用软件工程......
  • 痞子衡嵌入式:Farewell, 我的写博故事2023
    --题图:苏州虎丘塔2023年的最后一天,照旧写个年终总结。昨晚和同门师兄弟一起吃饭,有个师弟告诉痞子衡,微博上一个拥有22.3W粉丝的嵌入式同行今年4月发过一个吐槽微博,说恩智浦MCU文档不够全面,后来只在痞子衡的相关分享里才找到答案。听到这个消息,痞子衡第一反应是小有成就......
  • Microsoft 365开发:如何通过Graph Powershell推动密码过期邮件提醒
    51CTOBlog地址:https://blog.51cto.com/u_13969817密码过期提醒是一种安全措施,用于确保用户定期更改其密码,以减少密码被盗用的风险。当用户密码过期时,系统发送提醒通知,告知需要更改密码。这种提醒通常可以以电子邮件、系统通知的方式发送给用户,提醒中通常包含有关如何更改密码的提......
  • Microsoft 365开发:如何使用Powershell将单个或者多个用户邮箱转换为共享邮箱
    51CTOBlog地址:https://blog.51cto.com/u_13969817Office365是一个基于云的平台,提供了一套生产力工具,包括电子邮件、日历和文件共享。随着员工数量的增加和团队合作的需要,企业管理员经常会将个人邮箱转换为共享邮箱,其好处是:·      共享邮箱可以方便团队成员之间的邮件交......
  • Microsoft 365 新功能速递:如何用Powershell为SPO文件夹设置不同颜色
    51CTOBlog地址:https://blog.51cto.com/u_13969817微软最近推出了一项新功能,允许用户在SharePointOnline和OneDrive中使用预设的16种颜色为文件夹上色。此功能适用于新文件夹和现有文件夹。现在,用户可以使用不同的颜色自定义文件夹,以便更好地管理文件,比如:·      提供工作......
  • SciTech-BigDataAIML-Tensorflow-Writing your own callbacks
    IntroductionApowerfulcallbackwasusedtocustomizethebehaviorofaKerasmodelduringtraining,evaluation,orinference.Examplesincludetf.keras.callbacks.TensorBoardtovisualizetrainingprogressandresultswithTensorBoard,ortf.keras.callba......
  • LLE与Autoencoders的比较:深度学习与非线性嵌入
    1.背景介绍深度学习和非线性嵌入是两种不同的方法,用于处理高维数据并减少其维度。在这篇文章中,我们将讨论两种方法的比较,以及它们在实际应用中的优缺点。我们将从以下几个方面进行讨论:背景介绍核心概念与联系核心算法原理和具体操作步骤以及数学模型公式详细讲解具体代码实例和详细......
  • 什么是 Shell,Shell 功能介绍和脚本编程入门实例
    1.概述Shell一种特殊的交互工具,用于用户和Linux系统交互,其功能和构成如下所示:交互工具,为用户提供了启动程序、管理文件系统中的文件和运行在Linux系统上的进程。核心是命令行提示符,命令行提示符是Shell负责交互的部分,允许输入命令,然后解释命令,并在内核中执行。包含了一组内部命......
  • appium报错DeprecationWarning: desired_capabilities argument is deprecated and wi
    不再用desired_capabilities,用options代替原来的desired_caps={"platformName":"ios","platformVersion":"11.4","deviceName":"iPhone6Plus",&......