高级会员

- 积分
- 671
- 金钱
- 671
- 注册时间
- 2015-4-26
- 在线时间
- 173 小时
|

楼主 |
发表于 2016-1-5 14:23:45
|
显示全部楼层
不是,程序是这样的,led0显示正常
#define SEND_BUF_SIZE 8200
u8 SendBuff[SEND_BUF_SIZE];
const u8 TEXT_TO_SEND[]={" DMA 串口实验"};
int main(void)
{
u16 i;
u8 t=0;
u8 j,mask=0;
//float pro=0;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
KEY_Init();
j=sizeof(TEXT_TO_SEND);
for(i=0;i<SEND_BUF_SIZE;i++)
{
if(t>=j)
{
if(mask)
{
SendBuff=0x0a;
t=0;
}else
{
SendBuff=0x0d;
mask++;
}
}else
{
mask=0;
SendBuff=TEXT_TO_SEND[t];
t++;
}
}
i=0;
while(1)
{
t=KEY_Scan(0);
if(t==WKUP_PRES )
{
//printf("\r\nDMA DATA:\r\n");
USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE);
MYDMA_Enable(DMA1_Channel4);
while(1)
{
if(DMA_GetFlagStatus(DMA1_FLAG_TC4)!=RESET)
{
DMA_ClearFlag(DMA1_FLAG_TC4);
break;
}
// pro=DMA_GetCurrDataCounter(DMA1_Channel4);
// pro=1-pro/SEND_BUF_SIZE;
// pro*=100;
}
}
i++;
delay_ms(10);
if(i==20)
{
LED0=!LED0;
i=0;
}
}
}
|
|