[技术问答] 求助 华大 HC32L130 串口DMA接收不定长数据的方法

[复制链接]
4147|12
 楼主| shibing2005 发表于 2020-6-5 12:52 | 显示全部楼层 |阅读模式
最近在写一个关于华大单片机的串口接收程序,想节省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 来自手机 | 显示全部楼层
可以上个代码参考一下吗?提高一下小白代码水平,造福中国人
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部