Nick20150702 发表于 2015-7-2 17:45
哎,可是还必须用这个.所以是不是只能用我上边的做法啊?
为什么必须要这个,你必须要用DMA接收吗?
creep 发表于 2015-7-2 17:49
为什么必须要这个,你必须要用DMA接收吗?
对啊, 要用DMA缓存..
Nick20150702 发表于 2015-7-2 17:52
对啊, 要用DMA缓存..
那就使用那个DMA接收模式的函数吧,然后打开DMA中断,传送完成后在中国暖中处理数据。
creep 发表于 2015-7-2 17:59
那就使用那个DMA接收模式的函数吧,然后打开DMA中断,传送完成后在中国暖中处理数据。 ...
就是说 我要一直调用这个HAL_UART_Receive_DMA, 然后在callback里 处理数据..哎..
Nick20150702 发表于 2015-7-2 18:04
就是说 我要一直调用这个HAL_UART_Receive_DMA, 然后在callback里 处理数据..哎..
这个函数调用一次就可以了,接收到你设定的个数的数据后会进入中断函数。不用一直调用。你进到函数里面看看那它的处理就明白了。
creep 发表于 2015-7-2 18:09
这个函数调用一次就可以了,接收到你设定的个数的数据后会进入中断函数。不用一直调用。你进到函数里面看 ...
那我如果RX一直 有数据送来,还只调用一次吗?
Nick20150702 发表于 2015-7-2 18:11
那我如果RX一直 有数据送来,还只调用一次吗?
理论上你可以设置一个很大的数组用于一直接收发送来的数据。
creep 发表于 2015-7-2 18:35
理论上你可以设置一个很大的数组用于一直接收发送来的数据。
对呀,确实有一个很大的buffer 接受数据, 可是我不确定HAL_UART_Receive_DMA怎么用呢..
:)路过
DMA也使用IT的回掉,不过你需要配置好DMA中断。