stm32f103c8r6 dma 测试

main.h文件
#include "stm32f10x.h" //STM32头文件
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "dma.h"


int main (void){//主程序
    u8 i;
    //RCC_Configuration(); //时钟设置
    uart_init(115200); //串口初始化(参数是波特率) 
  printf("STM32 DMA TEST!\r\n");
    printf("dataA:");
    for(i=0;i<Size;i++)
    {
        printf("%d ",dataA[i]);
    }
     printf("\r\n");
    
    printf("dataB:");
    for(i=0;i<Size;i++)
    {
        printf("%d ",dataB[i]);
    }
     printf("\r\n");
    
  DMA_config((u32) dataA,(u32) dataB,Size);
    
    printf("dataB:");
    for(i=0;i<Size;i++)
    {
        printf("%d ",dataB[i]);
    }
     printf("\r\n");
    
    while(1){
//        printf("STM32F103 hell word"); //纯字符串发送数据到串口
//        printf("\r\n");
//        delay_s(1); //延时1秒

    }
}

dma.h文件

#ifndef __DMA_H
#define __DMA_H
#include "stm32f10x.h" //STM32头文件
#define Size  8
extern const    u8 dataA[8]; //相当外设地址
extern u8 dataB[8];  //相当内存地址

void DMA_config(u32 src_addr,u32 dst_addr,u32  data_size);


#endif

dma.c文件

#include "dma.h"
#include "stm32f10x.h" //STM32头文件

 const    u8 dataA[8]={1,2,3,4,5,6,7,8}; //相当外设地址
 u8 dataB[8];  //相当内存地址
void DMA_config(u32 src_addr,u32 dst_addr,u32  data_size)
{
     DMA_InitTypeDef  DMA_InitStructure;
    
   /* Enable DMA1 clock */
     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

     /* DMA1 channel1 configuration */
   DMA_DeInit(DMA1_Channel1);
   DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)src_addr;//外设站点起始的地址
   DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)dst_addr;//存储器的地址
   DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;//传输方向 从外设站点搬到存储器站点
   DMA_InitStructure.DMA_BufferSize = data_size;//数据量(字节数小于65535)
   DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;//外设地址需要自增
   DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;//地址需要自增
   DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;//宽度 字节
   DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_Byte;
   DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; //单次
   DMA_InitStructure.DMA_Priority = DMA_Priority_High;//优先级设置高级
   DMA_InitStructure.DMA_M2M = DMA_M2M_Enable;//使能 存储器到存储器的搬运
   DMA_Init(DMA1_Channel1, &DMA_InitStructure);
    
   DMA_Cmd(DMA1_Channel1, ENABLE);

}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机服务器中了mallox勒索病毒怎么办,mallox勒索病毒解密数据恢复

企业的计算机服务器存储着企业重要的信息数据&#xff0c;为企业的生产运营提供了极大便利&#xff0c;但网络安全威胁随着技术的不断发展也在不断增加&#xff0c;近期&#xff0c;云天数据恢复中心接到许多企业的求助&#xff0c;企业的计算机服务器中了mallox勒索病毒&#…

XSS语句

XSS测试语句 在测试网站是否存在XSS漏洞时&#xff0c;应该输入一些标签如<,>输入后查看网页源代码是否过滤标签&#xff0c;如果没过滤&#xff0c;很大可能存在XSS漏洞。 <h5>1</h5> <span>1</span> <SCRIPT>alert(document.cookie)&l…

线性代数的学习和整理23:用EXCEL,VBA,python计算向量/矩阵的各种乘法:内积,点积,外积,叉积(建设ing)

目录 前言&#xff1a;EXCEL里的的向量相关计算公式 0.1 EXCEL里相关公式 0.2 先说结论&#xff1a;向量组的点乘公式和 向量组的点乘公式不一样 1 向量的点乘 (内积) 1.1 向量的点乘公式 1.2 EXCEL里向量点乘的计算 ​编辑 1.3 向量点乘的性质 1.3.1 内积的公式…

014-信息打点-JS架构框架识别泄漏提取API接口枚举FUZZ爬虫插件项目

014-信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ爬虫&插件项目 #知识点&#xff1a; 1、JS前端架构-识别&分析 2、JS前端架构-开发框架分析 3、JS前端架构-打包器分析 4、JS前端架构-提取&FUZZ 解决&#xff1a; 1、如何从表现中的JS提取…

使用Element中的input组件如何实现文字和输入框在一行显示

利用 <el-form-item label"商品名称&#xff1a;">标签包裹即可&#xff0c;label写提示文字 <el-form ref"form" label-width"100px"><el-form-item label"商品名称&#xff1a;"><el-input v-model"na…

3 Python 工匠:使用数字与字符串的技巧

Python 工匠&#xff1a;使用数字与字符串的技巧 序言 这是 “Python 工匠”系列的第 3 篇文章。[查看系列所有文章] 数字是几乎所有编程语言里最基本的数据类型&#xff0c;它是我们通过代码连接现实世界的基础。在 Python 里有三种数值类型&#xff1a;整型&#xff08;int&…

9.Vim 编辑器

Vim编译器基础笔记请访问URL 1.配置主机名称 使用Vim编辑器修改/etc/hostname主机名称文件。 hostname 命令用于查看当前的主机名称 [rootlocalhost ~]# vim /etc/hostname [rootlocalhost ~]# hostname2.配置网卡信息 使用Vim编辑器修改网卡文件ifcfg-ens160 [rootlocal…

算法训练day20Leetcode654最大二叉树617合并二叉树700二叉树中的1搜索98验证二叉搜索树

654 最大二叉树 题目 https://leetcode.cn/problems/maximum-binary-tree/description/ 我的想法 中序遍历递归&#xff0c;找到最大值然后作为根节点 题目分析 凡是构造二叉树的题目都用前序遍历 &#xff08;中左右&#xff09; 为先构造中间节点&#xff0c;然后递归…

【设计模式-08】Flyweight享元模式

简要说明 简要的理解&#xff1a;享元模式就是新建一个池(Pool)&#xff0c;该池子(Pool)中有新建好的一堆对象&#xff0c;当需要使用时&#xff0c;从池子(Pool)中直接获取&#xff0c;不用重新新建一个对象。通俗的讲就是&#xff1a;共享元数据。 比如Java中的String就是使…

C++面试:向量vector和列表list介绍

目录 vector list list和vector的区别 1. 底层实现&#xff1a; 2. 动态性和静态性&#xff1a; 3. 内存管理&#xff1a; 4. 迭代器和指针&#xff1a; 5. 访问效率&#xff1a; 6. 适用场景&#xff1a; vector std::vector 是 C STL 提供的动态数组容器&#xff0…

嵌入式Linux:如何进行嵌入式Linux开发?

目录 1、裸机开发 2、SDK开发 3、驱动开发 3.1、字符设备驱动 3.2、块设备驱动 3.3、网络设备驱动 嵌入式Linux开发主要有三种方式&#xff1a;裸机开发、SDK开发和驱动开发。 1、裸机开发 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。这种开发方式要…

基于JavaWeb+SSM+Vue停车场微信小程序系统的设计和实现

基于JavaWebSSMVue停车场微信小程序系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关…

【Java 设计模式】结构型之外观模式

文章目录 1. 定义2. 应用场景3. 代码实现结语 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c; 它为复杂系统提供了一个简化的接口&#xff0c;隐藏了系统的复杂性&#xff0c;使得客户端更容易使用系统。外观模式通过创建一个包装类&#x…

【ASP.NET Core 基础知识】--路由和请求处理--路由概念(一)

在Web应用中&#xff0c;路由是一个至关重要的概念&#xff0c;它负责将用户的请求映射到相应的处理程序&#xff0c;以确保正确的页面或资源被呈现给用户。通过将用户请求与适当的处理程序关联起来&#xff0c;使得应用能够以有序和可维护的方式响应用户的操作。 一、ASP.NET…

【网络安全】-入门版

secure 一、基本工具1、metasploit framework ps.本着兴趣爱好&#xff0c;加强电脑的安全防护能力&#xff0c;并严格遵守法律和道德规范。一、基本工具 1、metasploit framework msf&#xff08;metasploit framework&#xff09;是一个开源的渗透测试框架&#xff0c;用于…

小程序系列--10.小程序WXS 脚本

一、概述 1. 什么是 wxs&#xff1f; WXS&#xff08;WeiXin Script&#xff09;是小程序独有的一套脚本语言&#xff0c;结合 WXML&#xff0c;可以构建出页面的结构。 2. wxs 的应用场景 wxml 中无法调用在页面的 .js 中定义的函数&#xff0c;但是&#xff0c;wxml 中可…

Vagrant安装Oracle Data Guard环境示例

在Windows 11下&#xff0c;通过Vagrant安装标准的Data Guard环境&#xff08;默认为non-CDB模式&#xff09;&#xff0c;耗时约26分钟&#xff0c;共生成2台虚机。以下为安装日志&#xff1a; ...host2: Welcome to DGMGRL, type "help" for information.host2: C…

《Python数据分析实战》

环境搭建 定义变量名时要遵循的规则&#xff1a; 变量名必须以字母或下画线开始&#xff0c;名字中间只能由字母、数字和下画线组成长度不能超过255个字符变量名在有效范围内必须具有唯一性不能使用保留字&#xff08;关键字&#xff09;区分大小写 不能对元组中的元素做修改…

分布式锁注解SyncLock

一、目标&#xff1a; 1、简化手动开关锁的重复代码&#xff08;专注业务本身&#xff09; 2、集成不同分布式锁解决方案&#xff08;锁不同使用方式不同&#xff09; 3、规范锁的命名和异常信息内容&#xff08;内容不规范&#xff0c;不易于理解和维护&#xff09; 4、避免事…

pyspark笔记:over

1 方法介绍 在 PySpark 中&#xff0c;over 函数是一个非常重要的概念&#xff0c;尤其是在使用窗口函数&#xff08;例如 row_number, rank, dense_rank, lead, lag 等&#xff09;时。over 函数允许你对一个数据集进行分组&#xff0c;然后在每个分组内应用窗口函数。 1.1 …