|
while(1)
{
USART_DMACmd(USART1,USART_DMAReq_Tx,ENABLE); //使能串口1的DMA发送 串口DMA请求
MYDMA_Enable(DMA1_Channel4);//开始一次DMA传输!
//等待DMA传输完成,此时我们来做另外一些事,点灯
//实际应用中,传输数据期间,可以执行另外的任务
while(1)
{
if(DMA_GetFlagStatus(DMA2_FLAG_TC4)!=RESET) //判断通道4传输完成
{
DMA_ClearFlag(DMA2_FLAG_TC4);//清除通道4传输完成标志
break;
}
pro=DMA_GetCurrDataCounter(DMA1_Channel4);//得到当前还剩余多少个数据,DMA1_Channel4->CNDTR
pro=1-pro/5168;//得到百分比
pro*=100; //扩大100倍
LCDShow_uCharNumber(40,120,pro,4,0x0000,0xf800);//4为数据,前景色,背景色
LCD_PutString(40,140,"Transimit Finished!",0x0000,0xf800);
printf("进度:%f\r\n",pro);//
}
按下按键前灯闪,按下按键后,灯不闪,但 串口能接收到数据,就是TFT显示不出数据传输进度, LCD_PutString(40,140,"Transimit Finished!",0x0000,0xf800);这句也显示不出,用printf("进度:%f\r\n",pro);//也打印不出
好像程序进不到这
|