中级会员
 
- 积分
- 283
- 金钱
- 283
- 注册时间
- 2015-11-16
- 在线时间
- 92 小时
|
1金钱
串口DMA连续启动3次?,我只给了一次的条件
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "dma.h"
u8 SendBuff[2400]; //·¢Ëíêy¾Y»o3åÇø
u8* G;
int main(void)
{
u16 i,j;
LED_Init();
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
// NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÖD¶ÏóÅÏè¼¶·Ö×éÎa×é2£o2λÇàÕ¼óÅÏè¼¶£¬2λÏìó|óÅÏè¼¶
uart_init(115200); //′®¿ú3õê¼»ˉÎa115200
MYDMA_Config(DMA1_Channel4,(u32)&USART1->DR,(u32)G,2400);//DMA1í¨μà4,íaéèÎa′®¿ú1,′æ′¢Æ÷ÎaSendBuff,3¤¶èSEND_BUF_SIZE.
G=SendBuff;
for(i=0;i<2400;i++)//ìî3äêy¾Yμ½SendBuff
{
G[i]=0x0a;
}
USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE); //ê1Äü′®¿ú1μÄDMA·¢Ëí
MYDMA_Enable(DMA1_Channel4);//¿aê¼ò»′ÎDMA′«ê䣡
while(1)
{
if(DMA_GetFlagStatus(DMA1_FLAG_TC4)!=RESET) //ÅD¶Ïí¨μà4′«êäíê3é
{
delay_ms(5000);
USART_DMACmd(USART1,USART_DMAReq_Tx,DISABLE);
USART_ClearITPendingBit(USART1, USART_IT_TC);
DMA_ClearFlag(DMA1_FLAG_TC4);//Çå3yí¨μà4′«êäíê3é±êÖ¾
GPIO_SetBits(GPIOG,GPIO_Pin_14);
DMA_Cmd(DMA1_Channel4, DISABLE );
DMA_DeInit(DMA1_Channel4);
break;
}
;
}
delay_ms(5000);
GPIO_ResetBits(GPIOG,GPIO_Pin_14);
}
|
|