...aaa 发表于 2015-11-18 15:46:54

cube库串口接收不定长数据问题

在cube库用 HAL_UART_Receive_IT()可以接收定长的数据,可以如果数据是不定长的该怎么解决呢

发表于 2015-11-18 15:58:39

用的标准库,HAL库,自己改一下接收中断。

creep 发表于 2015-11-18 16:28:48

用空闲中断+DMA,修改下hal库手动添加空闲中断即可。

Paderboy 发表于 2015-11-18 17:47:33

楼上正解:::

...aaa 发表于 2015-11-18 21:18:20

creep 发表于 2015-11-18 16:28
用空闲中断+DMA,修改下hal库手动添加空闲中断即可。

在检测到总线空闲的时候关闭DMA处理数据,然后在关闭总线空闲中断,打开DMA这样吗

creep 发表于 2015-11-18 22:09:49

...aaa 发表于 2015-11-18 21:18
在检测到总线空闲的时候关闭DMA处理数据,然后在关闭总线空闲中断,打开DMA这样吗 ...

在空闲中断中先关闭DMA然后读取DMA传输的数据长度,然后继续使能DMA接收下一个空闲帧。

...aaa 发表于 2015-11-19 21:24:20

creep 发表于 2015-11-18 22:09
在空闲中断中先关闭DMA然后读取DMA传输的数据长度,然后继续使能DMA接收下一个空闲帧。

...

我直接用DMA循环接收什么中断都不用也能完成不定长接收了

haogong-325897 发表于 2017-7-1 17:35:48

安 发表于 2015-11-18 15:58
用的标准库,HAL库,自己改一下接收中断。

怎么改,有没有实例?

发表于 2017-7-3 11:04:24

把中断处理函数里面的关闭中断的语句屏蔽掉。
页: [1]
查看完整版本: cube库串口接收不定长数据问题