OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5726|回复: 6

DMA显示不出数据传输进度

[复制链接]

23

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2013-10-8
在线时间
0 小时
发表于 2013-10-29 00:44:14 | 显示全部楼层 |阅读模式
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);//也打印不出
好像程序进不到这
 
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-10-29 11:46:18 | 显示全部楼层
“用printf("进度:%f\r\n",pro);//也打印不出”,此时DMA正在向串口搬运设备,被占用了,所以没输出
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

23

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2013-10-8
在线时间
0 小时
 楼主| 发表于 2013-10-29 12:28:03 | 显示全部楼层
回复【2楼】xiaoyan:
---------------------------------
那为什么彩屏也显示不出
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-29 12:32:08 | 显示全部楼层
回复【3楼】小伟:
---------------------------------
你直接下载我们的例程,可以用么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

23

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2013-10-8
在线时间
0 小时
 楼主| 发表于 2013-10-29 12:41:58 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
DMA程序完全复制,就是改了KEY用PB0,led用PB6,其他的也没改啊,难道是硬件吗,,这个实验对硬件有什么呀哦注意的吗
回复 支持 反对

使用道具 举报

23

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2013-10-8
在线时间
0 小时
 楼主| 发表于 2013-10-29 20:39:18 | 显示全部楼层
真是蛋疼,用寄存器写有能正常显示,改成库函数就不行了真是不明白,DMA 程序是复制例程
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-30 00:23:48 | 显示全部楼层
DMA2_FLAG_TC,是有问题的
库函数这里有点bug
改为MA1_FLAG_TC
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-9 23:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表