本帖最后由 12tangyang12 于 2019-5-7 06:18 编辑
情况是这样的:主控是stm32f103c8t6,72M ,串口115200 bps 接收采用DMA 方式,buf 是10字节。接收到数据后会有空闲中断 或者是 接受满中断。
DAM 采用普通单次方式接收。问题是这样:接收超过10字节数据时“1234567890ab” 首先触发了DMA完成中断,然后在中断里会把数据存入FIFO,在存的时候DMA是关闭状态,导致后面的"a"会漏掉。
最终收到的是1234567890b。请大家分析下,怎么处理
请问两个buffer怎么操作,是:设置第一个,接收完成中断里设置成第二个,并开始搬第一个的数据,第二个接收完成设置成第一个,并开始搬第一个的数据交替着来?
遇到空闲中断,直接把当前缓冲区数据搬走?
对的, 就是这样子, buff长一些,留给你处理的时间就长一些,这样可以均衡处理和接收的时间,
一周热门 更多>