本帖最后由 Illidan 于 2016-8-3 07:40 编辑
代码如下:
#include "LED.h"
#include "DMA.h"
#include "KEY.h"
#include "stm32f4xx.h"
#include "delay.h"
#include "usart.h"
#define SEND_BUF_SIZE 8200
u8 SENDBUFF[SEND_BUF_SIZE];
u8 TEXTBUFF[]={"ALIENTEK Explorer STM32F4 DMA ′®¿úêμÑé"};
int main(void)
{
u8 j,t;
u16 i;
LED_init();
delay_init(168);
key_init();
uart_init(115200);
led1=0;
USART_DMACmd(USART1,USART_DMAReq_Tx,DISABLE);
MYDMA_Config(DMA2_Stream7,DMA_Channel_4,(u32)&USART1->DR,(u32)SENDBUFF,SEND_BUF_SIZE);
j=sizeof(TEXTBUFF);
for(i=0;i<SEND_BUF_SIZE;i++)
{
SENDBUFF=TEXTBUFF[t];
t++;
if(t==j)
{
SENDBUFF[i++]=0x0d;
SENDBUFF[i++]=0x0a;
t=0;
}
}
i=0;
while(1)
{
if(key_scan(0)==1)
{
USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE);
MYDMA_Enable(DMA2_Stream7,SEND_BUF_SIZE);
while(!DMA_GetFlagStatus(DMA2_Stream7,DMA_FLAG_TCIF7));
DMA_ClearFlag(DMA2_Stream7,DMA_FLAG_TCIF7);
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>