完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.概述
DMA传输是内核授权给DMA控制器,把数据传输的工作DMA控制器来进行管理的一。 配置数据传输方式。 2.配置数据传输步骤 2.1配置过程 DMAX的配置步骤如下: 1.在DMA_CPARx中设置外设设备寄存器的地址发生外设数据传输请求时,这个地址将的英文数据传输的源或目标。 2.在DMA_CMARx寄存器中设置数据存储器的地址。发生外设数据传输请求时,传输的数据将从这个地址读出或写入这个地址。 3.在DMA_CNDTRx寄存器中设置要传输的数据量在每个数据传输后,这个数值递减。 4.在DMA_CCRx寄存器的PL。[1:0]位中设置通道的优先级 5.在DMA_CCRx寄存器中设置数据传输的方向,循环模式,外设和存储器的增量模式,外设状语从句:存储器的数据宽度,传输一半产生中断或传输完成产生中断。 6.设置DMA_CCRx寄存器的ENABLE位,启动该通道 2.2具体的配置过程 以串口DMA发送为例,串口1的发送在ADC1的通道4上。
函数这个主要配置前文《STM32-一文搞懂DMA》提到的DMA通道x配置内存(DMA_CCRx)(x = 1…7),其中参数结构体如下 |
|
|
|
main.c
#include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include "dma.h" #define SEND_BUF_SIZE 8200 //发送数据长度,最好等于sizeof(TEXT_TO_SEND)+2的整数倍. u8 SendBuff[SEND_BUF_SIZE]="nihaohdhshagfhdgkshfdksghfdhgjkfdgkfdjsrnhi电光火石更合适的顾客会尽快rn"; //发送数据缓冲区(随便写的) const u8 TEXT_TO_SEND[]={"ALIENTEK WarShip STM32F1 DMA 串口实验"}; int main(void) { u16 i; float pro=0;//进度 delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 uart_init(115200); //串口初始化为115200 LED_Init(); //初始化与LED连接的硬件接口 MYDMA_Config(DMA1_Channel4,(u32)&USART1->DR,(u32)SendBuff,SEND_BUF_SIZE);//DMA1通道4,外设为串口1,存储器为SendBuff,长度SEND_BUF_SIZE. while(1) { USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE); //使能串口1的DMA发送 MYDMA_Enable(DMA1_Channel4);//开始一次DMA传输! //等待DMA传输完成,此时我们来做另外一些事,点灯 //实际应用中,传输数据期间,可以执行另外的任务 while(1) { if(DMA_GetFlagStatus(DMA1_FLAG_TC4)!=RESET) //判断通道4传输完成 { DMA_ClearFlag(DMA1_FLAG_TC4);//清除通道4传输完成标志 break; } pro=DMA_GetCurrDataCounter(DMA1_Channel4);//得到当前还剩余多少个数据 pro=1-pro/SEND_BUF_SIZE;//得到百分比 pro*=100; //扩大100倍 } i++; delay_ms(10); if(i==20) { LED0=!LED0;//提示系统正在运行 i=0; } } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1298 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1310 浏览 1 评论
721 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
531 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1327 浏览 2 评论
1727浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
435浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
390浏览 3评论
378浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
357浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-20 13:57 , Processed in 0.724410 second(s), Total 45, Slave 40 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号