DMA知识

提示:文章

文章目录

  • 前言
  • 一、背景
  • 二、
    • 2.1
    • 2.2
  • 总结

前言

前期疑问:
本文目标:


一、背景

2024年3月26日23:32:43
今天看了DMA存储器到存储器的DMA传输和存储器到外设的DMA实验,在keil仿真可以看到效果。还没有在protues和开发板上实验。先记录下来。

二、

2.1 存储器到存储器

存储器到存储器
代码提交记录:

SHA-1: bea0109310e47971a4869d13784445d9ee96f536
DMA实现存储器到存储器实验

//main.c文件
int main(void)
{	
	//RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
	/* LED 端口初始化 */
	LED_GPIO_Config();	 
	//按键初始化函数	
	gpio_init();
	//EXTI按键初始化函数
	bsp_exti_key_gpio_init();
	bsp_exti_key_nvic_init();
	bsp_exti_key_exti_init();
	
	//RCC初始化
	RCC_Init();			
	
	//USART初始化
	InitGPIO();
	InitUsart();		//包含了NVIC中断初始化
	//USART_Config();

	//DMA配置,存储器到存储器
	DMA_Config();
	
	char array[15] = "hello world\r\n";
	while (1)
	{
		//key_process();	
		rcc_led_loop();
		
//		for(int i = 0; i < 15; i++)
//		{
//			sendData(array[i]);
//		}
//		//Delay(1000000);
		printf("hello world\r\n");
		if(getBufferCmpResult())
		{
			printf("result is same!\r\n");
		}
	}
}
//打印信息
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();
hello world
result is same!
led_on();
led_off();

2.2 存储器到外设

代码提交:

SHA-1: 8632c414141f7dae6c10e9617b1576f59a09d62e
DMA实现存储器到外设数据发送

//main文件
/**
  * @brief  主函数
  * @param  无  
  * @retval 无
  */
int main(void)
{	
	//RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
	/* LED 端口初始化 */
	LED_GPIO_Config();	 
	//按键初始化函数	
	gpio_init();
	//EXTI按键初始化函数
	bsp_exti_key_gpio_init();
	bsp_exti_key_nvic_init();
	bsp_exti_key_exti_init();
	
	//RCC初始化
	RCC_Init();			
	
	//USART初始化
	InitGPIO();
	InitUsart();		//包含了NVIC中断初始化
	//USART_Config();

	//DMA配置,存储器到存储器
	DMA_Config();
	
	/* 配置使用DMA模式 */
    USARTx_DMA_Config();
	
	printf("\r\n USART1 DMA TX 测试 \r\n");
	
	int i = 0;

    /*填充将要发送的数据*/
    for (i=0; i<SENDBUFF_SIZE; i++)
    {
        SendBuff[i]  = 'P';

    }

    /*为演示DMA持续运行而CPU还能处理其它事情,持续使用DMA发送数据,量非常大,
    *长时间运行可能会导致电脑端串口调试助手会卡死,鼠标乱飞的情况,
    *或把DMA配置中的循环模式改为单次模式*/

    /* USART1 向 DMA发出TX请求 */
    USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);
	
	char array[15] = "hello world\r\n";
	while (1)
	{
		//key_process();	
		rcc_led_loop();
		
//		for(int i = 0; i < 15; i++)
//		{
//			sendData(array[i]);
//		}
//		//Delay(1000000);
		printf("hello world\r\n");
		if(getBufferCmpResult())
		{
			printf("result is same!\r\n");
		}
	}
}

keil仿真实验效果
在这里插入图片描述

三、

3.1


总结

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/490962.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spire.PDF for .NET【文档操作】演示:查找并删除 PDF 中的空白页

PDF 中的空白页并不罕见&#xff0c;因为它们可能是作者故意留下的或在操作文档时意外添加的。当您阅读或打印文档时&#xff0c;这些空白页可能会很烦人&#xff0c;因此可能非常有必要将其删除。在本文中&#xff0c;您将了解如何使用Spire.PDF for .NET以编程方式查找和删除…

CODESYS和AB的PLC走ETHERNET/IP

添加Ethernet->添加EtherNet_IP_Adapter_1->EtherNet_IP_Module 添加数据&#xff1a;需要发送多少就写多少 填写数量类型&#xff1a; 2.导出EDS文件&#xff0c;此处导出EDS文件需修改版本号&#xff0c;此处版本号不能与AB库中从站版本号存在冲突&#xff0c;否则在…

Go语言学习Day4:函数(上)

名人说&#xff1a;莫愁千里路&#xff0c;自有到来风。 ——钱珝 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、函数的概念与定义①函数的概念②函数的具体定义③多返回值 2、函数参数与作用域①可变参数②形…

windows安装tomcat

安装之前需要安装jdk1.8可以参考windows安装jdk1.8-CSDN博客 一、下载tomcat Apache Tomcat - Apache Tomcat 8 Software Downloads 解压到D盘的D:\Program Files\tomcat目录下 二、配置环境变量 电脑右键属性-高级系统设置-高级-环境变量 1、在系统变量配置CATALINA_HOME环…

[flask]请求全局钩子

flask从入门到精通之钩子、异常、context、jinjia模板、过滤器 - 异步非阻塞 - 博客园 (cnblogs.com) 参考的这个博客&#xff0c;但有一个需要注意的是&#xff0c;最新版本的flask不知道是不是更新了还是怎么了&#xff0c;他的before_first_request不见了&#xff0c;如果继…

鸿蒙HarmonyOS 开发如果实现多端协同?

多端协同流程 多端协同流程如下图所示。 图1 多端协同流程图 约束限制 由于“多端协同任务管理”能力尚未具备&#xff0c;开发者当前只能通过开发系统应用获取设备列表&#xff0c;不支持三方应用接入。 多端协同需遵循 分布式跨设备组件启动规则 。 为了获得最佳体验&…

迭代实现二叉树的遍历-算法通关村

迭代实现二叉树的遍历-算法通关村 理论上&#xff0c;递归能做的迭代一定能做&#xff0c;但可能会比较复杂。有时候面试官要求不使用递归实现三种遍历&#xff0c;递归就是每次执行方法调用都会先把当前的局部变量、参数值和返回地址等压入栈中&#xff0c;后面在递归返回的时…

uniapp 使用命令行创建vue3 ts 项目

命令行创建 uni-app 项目&#xff1a; vue3 ts 版 npx degit dcloudio/uni-preset-vue#vite-ts 项目名称注意 Vue3/Vite版要求 node 版本^14.18.0 || >16.0.0 如果下载失败&#xff0c;请去gitee下载 https://gitee.com/dcloud/uni-preset-vue/repository/archive/vite-ts…

基于nodejs+vue的Spark的共享单车数据存储系统的设计与实现python-flask-django-php

本文拟采用nodejs技术和express搭建系统框架&#xff0c;后台使用MySQL数据库进行信息管理&#xff0c;设计开发的共享单车数据存储系统。通过调研和分析&#xff0c;系统拥有管理员和用户两个角色&#xff0c;主要具备个人中心、用户管理、共享单车管理、系统管理等功能模块。…

力扣爆刷第105天之CodeTop100五连刷11-15

力扣爆刷第105天之CodeTop100五连刷11-15 文章目录 力扣爆刷第105天之CodeTop100五连刷11-15一、5. 最长回文子串二、33. 搜索旋转排序数组三、102. 二叉树的层序遍历四、200. 岛屿数量五、121. 买卖股票的最佳时机 一、5. 最长回文子串 题目链接&#xff1a;https://leetcode…

Unity VisionOS开发流程

Unity开发环境 Unity Pro, Unity Enterprise and Unity Industry 国际版 Mac Unity Editor(Apple silicon) visionOS Build Support (experimental) 实验版 Unity 2022.3.11f1 NOTE: 国际版与国服版Pro账通用&#xff0c;需要激活Pro的许可证。官方模板v0.6.2,非Pro版本会打…

微软开源项目Garnet:Redis的竞争者还是替代者?

对于开源社区&#xff0c;最近的一大新闻就是Redis宣布从7.4版本开始&#xff0c;将采用Redis源代码可用许可证&#xff08;RSALv2&#xff09;和服务器端公共许可证&#xff08;SSPLv1&#xff09;的双重许可证&#xff0c;取代原有的BSD三条款许可证。这一变化引发了开发者社…

【P1328】[NOIP2014 提高组] 生活大爆炸版石头剪刀布

[NOIP2014 提高组] 生活大爆炸版石头剪刀布 题目背景 NOIP2014 提高组 D1T1 题目描述 石头剪刀布是常见的猜拳游戏&#xff1a;石头胜剪刀&#xff0c;剪刀胜布&#xff0c;布胜石头。如果两个人出拳一样&#xff0c;则不分胜负。在《生活大爆炸》第二季第 8 集中出现了一种…

Google AI 肺癌筛查的计算机辅助诊断

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

搭建Hadoop HA

目录 前言 搭建前准备 搭建 前言 Hadoop是一个由Apache基金会所开发的分布式系统基础架构&#xff0c;它允许用户在不了解分布式底层细节的情况下开发分布式程序&#xff0c;充分利用集群的威力进行高速运算和存储。Hadoop主要解决大数据存储和大数据分析两大核心问题&…

Java/JSP界面实现多国语言支持,支持插入变量,还要考虑名词单复数

在Java/JSP中&#xff0c;通常使用.properties文件定义各语言的文本&#xff0c;里面可以用{0},{1},{2}表示待插入的变量值&#xff08;之所以用数字&#xff0c;不用%s、%d等占位符&#xff0c;是因为不同语言的语序不同&#xff09;。 用java.util.ResourceBundle类的Resourc…

javaWeb教务查询系统

一、简介 在教育管理领域&#xff0c;教务管理系统是一个至关重要的工具&#xff0c;它能够有效地协调学校、教师和学生之间的各种活动。我设计了一个基于JavaWeb的教务管理系统&#xff0c;该系统包括三个角色&#xff1a;管理员、教师和学生。管理员拥有课程管理、学生管理、…

深度理解文件操作

目录 文件 文件名&#xff1a; 标准流 文件指针 文件的打开和关闭 文件的顺序读写&#xff1a; 使用部分 文件的打开和关闭 文件 文件分两种&#xff0c;第一种是程序文件&#xff0c;后一种是数据文件。 程序文件&#xff1a;包括源程序文件&#xff08;后缀为.c&…

Web APIs 学习知识总结

渲染学成在线案例 html文件: <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Com…

聊聊k8s服务发现的优缺点

序 本文主要研究一下使用k8s服务发现的优缺点 spring cloud vs kubernetes 这里有张spring cloud与kubernetes的对比&#xff0c;如果将微服务部署到kubernetes上面&#xff0c;二者有不少功能是重复的&#xff0c;可否精简。 这里主要是讲述一下如果不使用独立的服务发现&am…