本章介绍STM32F1的DMA。在本章中,我们将利用STM32F1的DMA来实现串口数据传送,并在TFTLCD模块上显示当前的传送进度。
-
当CPU初始化这个传输动作,传输动作本身是由DMA控制器来实行和完成。
-
DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程。
-
DMA通过硬件为RAM与IO设备开辟一条直接传送数据的通路,能使CPU的效率大为提高。
DMA简介
main函数
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "dma.h"
#define SEND_BUF_SIZE 8200 //发送数据长度,最好等于sizeof(TEXT_TO_SEND)+2的整数倍.
u8 SendBuff[SEND_BUF_SIZE]; //发送数据缓冲区
const u8 TEXT_TO_SEND[]={
"ALIENTEK WarShip STM32F1 DMA 串口实验"};
int main(void)
{
u16 i;
u8 t=0;
u8 j,mask=0;
float pro=0;