月亮一键变蓝 发表于 2024-11-3 04:00

数据处理函数要弄好,确保数据处理函数正确处理接收到的数据,避免数据不一致

未说出口的像你 发表于 2024-11-3 05:00

调试工具问题,确保串口调试工具发送的数据格式正确,避免发送的数据格式与接收端不匹配

我吃小朋友 发表于 2024-11-3 06:00

时钟配置,确保系统时钟和外设时钟配置正确,避免时钟配置错误导致数据传输不一致

失物招領 发表于 2024-11-3 07:00

中断优先级设计问题,确保DMA中断的优先级配置正确,避免中断优先级冲突导致数据处理不及时

她已醉 发表于 2024-11-3 08:00

不一致的话,是不是缓冲区溢出了?你缓冲区设计大点呢

春日负喧 发表于 2024-11-3 09:00

不建议在中断中加过多的程序处理函数哈

哈根达斯uz 发表于 2024-11-14 22:53

中查询已接收到的数据并进行处理

公羊子丹 发表于 2025-1-24 14:14

你用的是环形缓冲区吗?DMA接收的时候最好用环形缓冲区,这样不会因为覆盖数据而出错。

周半梅 发表于 2025-1-24 14:15

我也遇到过类似问题,后来发现是波特率设置不一致,检查一下你的波特率是不是跟调试工具一致?

帛灿灿 发表于 2025-1-24 14:17

DMA模式下要注意空闲中断,可以用USART的IDLE中断来判断数据接收完成,这样会更稳定。

童雨竹 发表于 2025-1-24 14:18

检查一下是不是数据有错位的问题,有时候发送和接收缓冲区的起始位置没对上也会出现这种情况。

万图 发表于 2025-1-24 14:19

你while(1)里查询数据的方法是怎么写的?可能是逻辑处理有问题,建议贴一下代码。

Wordsworth 发表于 2025-1-24 14:20

是不是接收缓冲区不够大?发送的数据量如果超过缓冲区大小,就会导致数据丢失。

Bblythe 发表于 2025-1-24 14:22

如果用的是RTOS的话,注意检查DMA的优先级设置,不然可能会被其他任务抢占。

Pulitzer 发表于 2025-1-24 14:23

看下你的DMA配置,有没有可能是数据的对齐方式或者数据宽度设置错了?

Uriah 发表于 2025-1-24 14:24

你用的什么调试工具?有些工具在发送数据时会带一些不可见字符,检查下是不是这个原因。

Clyde011 发表于 2025-1-24 14:26

数据发出和打印之间的流程太复杂了?建议先单独验证DMA接收是否正常,再一步步排查。

地瓜patch 发表于 2025-1-24 15:05

打印以后,清一次缓冲区,再接受

芯路例程 发表于 2025-1-25 18:25

数据处理功能必须良好,以确保数据处理功能正确处理接收到的数据,避免数据不一致

AutoMotor 发表于 2025-1-25 21:00

不建议在中断中添加过多的程序处理功能
页: 1 [2]
查看完整版本: STM32串口使用DMA方式进行接收,打印的数据和发送的数据不一致