shibing2005 发表于 2020-6-5 12:52

求助 华大 HC32L130 串口DMA接收不定长数据的方法

最近在写一个关于华大单片机的串口接收程序,想节省CPU的开销所以想使用DMA来做串口的接收发送数据,发数据知道长度,但是接收数据不知道长度,有哪位大神用过这方面的东西,求指教 !!!

h32446975 发表于 2020-6-29 23:50

460系列,接收数据使用TIM0的timeout功能做帧超时。

观海 发表于 2020-7-7 16:08

是不是可以用队列的模式接收呢

guanjiaer 发表于 2020-7-7 16:08

用指针因该可以

heimaojingzhang 发表于 2020-7-7 16:08

自己制定一个通讯协议

keaibukelian 发表于 2020-7-7 16:09

再简单我也要定好协议

labasi 发表于 2020-7-7 16:09

楼主问题解决了吗

迷惘186 发表于 2020-9-25 13:14

这个芯片 没有STM32 的串口空闲中断   STM32 用DMA 加 空闲中断可以接受不定长数据

这个只能用定时器 定时5ms开启串口接收中断,接收一个 刷新一次定时器, 定时器超时了 就是接收完了

詹求实 发表于 2020-9-26 22:40

迷惘186 发表于 2020-9-25 13:14
这个芯片 没有STM32 的串口空闲中断   STM32 用DMA 加 空闲中断可以接受不定长数据

这个只能用定时器 定时 ...

非常同意你的做法,只有串口空闲中断才可以接受不定长的数据。

martinhu 发表于 2020-9-27 09:01

迷惘186 发表于 2020-9-25 13:14
这个芯片 没有STM32 的串口空闲中断   STM32 用DMA 加 空闲中断可以接受不定长数据

这个只能用定时器 定时 ...

用DMA配合ADT 可以做类似的空闲中断,只是F030在接收的时候需要两路DMA配合,不需要开启接收中断。

xing650721 发表于 2020-9-27 17:44

弄个接收缓冲区

shibing2005 发表于 2020-11-16 18:23

给大家说一下我最后是用的方法,开个定时器定时去查询寄存器DMAC_CONFA0 中的TC值通过这个来判断是否接收到数据,以及接收到的数据长度。

windyfeel131 发表于 2021-5-31 17:01

可以上个代码参考一下吗?提高一下小白代码水平,造福中国人
页: [1]
查看完整版本: 求助 华大 HC32L130 串口DMA接收不定长数据的方法