f4 uart have dma trouble

首先有一个概念,DMA1_FLAG_TC4 ,是指DMA传输完成的中断标DMA传输完成以后,产生一个DMA1_FLAG_TC4的标志,但是一旦CLEAR了以后,DMA_GetFlagStatus(DMA1_FLAG_TC4) == RESET 就永远为真了。所以你的代码有时候能够走下去,有时候陷入这个While循环中,之所以陷入循环中是因为在中断中Clear了这个标志了。所以Main函数中再也检测不到了。如果这个地方想等待DMA发送结束的话,可以用一个标志位,中断函数中设置这个标志位,Main函数中可以一直等待这个标志位就行了志,只会产生一次,也就是你的数据全部传输完的时候,并不是没法送一个自己产生一次。


即使 不中断设置 也会有这个位.


sendUart2 发送缓冲区 必须传送到 临时数组 才管用。。要不然 就会发送 不完整数组,或者长度不够

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值