OpenEdv-开源电子网

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

DMA串口发送偶尔出现发送完成标志一直为零的情况

[复制链接]

61

主题

160

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
270
金钱
270
注册时间
2012-1-12
在线时间
93 小时
发表于 2019-6-20 12:15:30 | 显示全部楼层 |阅读模式
1金钱
这几天一直在测试程序,做了一个DMA串口发送程序,发送数据给液晶屏,可是有时候会偶尔出现,DMA一直发送不完数据的情况,所以程序就死在查询这里了。以下是串口发送程序,每发送一次我就调用一次这个函数,可是有时候偶尔出现if(DMA1->ISR&(1<<13))这句为零的情况,我仿真了一下看了看是因为DMA1->ISR中HTIF4等于1(半传输标志)
TCIF4缺一直等于0.所以程序一直死在这里。不知道为什么会偶尔出现传输完成标志一直为零的情况?像这种情况应该怎么解决掉?因为程序出现之后就死机了

void OtherControl(uint id,int data)
{
while(1){
    if(DMA1->ISR&(1<<13))
   {
DMA1->IFCR|=1<<13;//清除通道4传输完成标志
  SendBuff[0]=0X5A;        SendBuff[1]=0XA5;
  SendBuff[2]=0X05;        SendBuff[3]=0X82;
  SendBuff[4]=(id>>8);        SendBuff[5]=id;
  SendBuff[6]=(data>>8);        SendBuff[7]=data;
  MYDMA_Enable(DMA1_Channel4,8);
  break;
}  }   }


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10572
金钱
10572
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-6-20 18:01:29 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 09:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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