STM32 LL库串口DMA收发初始化

embedded/2024/12/27 2:23:55/

DMA初始化

	LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);
/* UART5_RX Init */LL_DMA_SetChannelSelection(DMA1, LL_DMA_STREAM_0, LL_DMA_CHANNEL_4);LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_STREAM_0, LL_DMA_DIRECTION_PERIPH_TO_MEMORY);LL_DMA_SetStreamPriorityLevel(DMA1, LL_DMA_STREAM_0, LL_DMA_PRIORITY_LOW);LL_DMA_SetMode(DMA1, LL_DMA_STREAM_0, LL_DMA_MODE_NORMAL);LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_STREAM_0, LL_DMA_PERIPH_NOINCREMENT);LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_STREAM_0, LL_DMA_MEMORY_INCREMENT);LL_DMA_SetPeriphSize(DMA1, LL_DMA_STREAM_0, LL_DMA_PDATAALIGN_BYTE);LL_DMA_SetMemorySize(DMA1, LL_DMA_STREAM_0, LL_DMA_MDATAALIGN_BYTE);LL_DMA_DisableFifoMode(DMA1, LL_DMA_STREAM_0);LL_DMA_SetPeriphAddress(DMA1, LL_DMA_STREAM_0, LL_USART_DMA_GetRegAddr(UART5));LL_DMA_SetMemoryAddress(DMA1, LL_DMA_STREAM_0, (uint32_t)rx_buffer);LL_DMA_SetDataLength(DMA1, LL_DMA_STREAM_0, 32);/* UART5_TX Init */LL_DMA_SetChannelSelection(DMA1, LL_DMA_STREAM_7, LL_DMA_CHANNEL_4);LL_DMA_SetDataTransferDirection(DMA1, LL_DMA_STREAM_7, LL_DMA_DIRECTION_MEMORY_TO_PERIPH);LL_DMA_SetStreamPriorityLevel(DMA1, LL_DMA_STREAM_7, LL_DMA_PRIORITY_LOW);LL_DMA_SetMode(DMA1, LL_DMA_STREAM_7, LL_DMA_MODE_NORMAL);LL_DMA_SetPeriphIncMode(DMA1, LL_DMA_STREAM_7, LL_DMA_PERIPH_NOINCREMENT);LL_DMA_SetMemoryIncMode(DMA1, LL_DMA_STREAM_7, LL_DMA_MEMORY_INCREMENT);LL_DMA_SetPeriphSize(DMA1, LL_DMA_STREAM_7, LL_DMA_PDATAALIGN_BYTE);LL_DMA_SetMemorySize(DMA1, LL_DMA_STREAM_7, LL_DMA_MDATAALIGN_BYTE);LL_DMA_DisableFifoMode(DMA1, LL_DMA_STREAM_7);LL_DMA_SetPeriphAddress(DMA1, LL_DMA_STREAM_7, LL_USART_DMA_GetRegAddr(UART5));LL_DMA_SetMemoryAddress(DMA1, LL_DMA_STREAM_7, (uint32_t)tx_buffer);LL_DMA_SetDataLength(DMA1, LL_DMA_STREAM_7, 32);

串口初始化

	USART_InitStruct.BaudRate = 115200;USART_InitStruct.DataWidth = LL_USART_DATAWIDTH_8B;USART_InitStruct.StopBits = LL_USART_STOPBITS_1;USART_InitStruct.Parity = LL_USART_PARITY_NONE;USART_InitStruct.TransferDirection = LL_USART_DIRECTION_TX_RX;USART_InitStruct.HardwareFlowControl = LL_USART_HWCONTROL_NONE;USART_InitStruct.OverSampling = LL_USART_OVERSAMPLING_16;LL_USART_Init(UART5, &USART_InitStruct);LL_USART_ConfigAsyncMode(UART5);LL_USART_Enable(UART5);LL_DMA_EnableStream(DMA1,LL_DMA_STREAM_0); //使能接收DMA通道LL_USART_EnableDMAReq_RX(UART5); LL_USART_EnableDMAReq_TX(UART5);

使用方式

for(int i =0;i<32;i++)tx_buffer[i] = i + 2;LL_DMA_EnableStream(DMA1,LL_DMA_STREAM_7); 使能发送

http://www.ppmy.cn/embedded/145591.html

相关文章

uni-app项目无法在Android Studio模拟器上运行

目录 1 问题描述2 尝试解决3 引发原因4 解决方法4.1 换用 MuMu 模拟器 5 结语 1 问题描述 在使用 uni-app 开发 Pad 端 App 时&#xff0c;初始化项目后打算先运行一下确保初始化正常。打开 Android Studio 模拟器后&#xff0c;然后在 HbuilderX 中选择使用 App 标准基座 运…

PCIE概述

PCIE概述 文章目录 PCIE概述前言一、应用场景二、PCIE理论2.1 硬件2.2 拓扑结构&#xff1a;处理器和设备之间的关系2.3 速率2.4 层次接口2.5 四种请求类型2.5.1 bar空间2.5.2 memory2.5.3 IO2.5.4 configuration2.5.5 message 前言 参考链接&#xff1a; pcie总线知识点解析 …

408数据结构:树与二叉树选择题做题笔记

408数据结构 第一章 绪论 第二章 线性表 绪论、线性表选择题做题笔记 第三章 栈、队列和数组 栈、队列和数组选择题做题笔记 第四章 串 第五章 树与二叉树 树与二叉树选择题做题笔记 文章目录 408数据结构第一节 树的基本概念&#xff08;1&#xff09;知识点补充&#xff08;…

Linux 高级路由教程

这本文是一个关于Linux高级路由的教程&#xff0c;主要讨论了如何使用Linux来构建一个能够根据数据包的目的地选择不同链路的路由器。详细解释了如何使用BGP&#xff08;边界网关协议&#xff09;来获取国内IP地址的路由信息&#xff0c;并介绍了如何在Linux系统中使用多个路由…

实验14 RNN的记忆能力和梯度爆炸实验

一 循环神经网络的记忆能力 1.数据集构建 创建了一个DigitSumDataset 类&#xff0c;包括初始化函数init、数据生成函数 generate_data、数据加载函数 load_data、__len__ 方法、__getitem__ 方法。 init函数&#xff1a;接受的参数是data_path&#xff08; 存放数据集的目录…

virtualbox 搭建ubuntu

环境&#xff1a;VirtualBox-6.1.32 1、下载安装virtualbox 略 2、新建ubuntu 3、配置ubuntu 选择虚拟盘 4、安装ubuntu 5、安装ssh sudo apt install openssh-server openssh-client 查看ip 6、安装samba sudo apt install samba 查看ssh启动状态 sudo systemctl stat…

Spring Boot + Spring AI快速体验

Spring AI快速体验 1 什么是Spring AI主要功能 2 快速开始2.1 版本说明2.2 配置文件2.3 pom依赖2.3.1 spring maven仓库2.3.2 核心依赖 2.4 定义ChatClient2.5 启动类2.6 测试 3 参考链接 1 什么是Spring AI Spring AI是Spring的一个子项目&#xff0c;是Spring专门面向于AI的…

安科瑞电能质量治理产品在分布式光伏电站的应用-安科瑞黄安南

1.概述 随着全球对可再生能源需求的增加&#xff0c;分布式光伏电站的建设和发展迅速。然而&#xff0c;分布式光伏电站的运行过程中面临着一系列问题&#xff0c;比如导致企业关口计量点功率因数过低、谐波污染等。这些问题不仅影响光伏电站自身的运行效率&#xff0c;还会对…