发新帖我要提问
12
返回列表
打印
[应用相关]

STM32串口使用DMA方式进行接收,打印的数据和发送的数据不一致

[复制链接]
楼主: jcky001
手机看帖
扫描二维码
随时随地手机跟帖
21
数据处理函数要弄好,确保数据处理函数正确处理接收到的数据,避免数据不一致

使用特权

评论回复
22
未说出口的像你| | 2024-11-3 05:00 | 只看该作者
调试工具问题,确保串口调试工具发送的数据格式正确,避免发送的数据格式与接收端不匹配

使用特权

评论回复
23
我吃小朋友| | 2024-11-3 06:00 | 只看该作者
时钟配置,确保系统时钟和外设时钟配置正确,避免时钟配置错误导致数据传输不一致

使用特权

评论回复
24
失物招領| | 2024-11-3 07:00 | 只看该作者
中断优先级设计问题,确保DMA中断的优先级配置正确,避免中断优先级冲突导致数据处理不及时

使用特权

评论回复
25
她已醉| | 2024-11-3 08:00 | 只看该作者
不一致的话,是不是缓冲区溢出了?你缓冲区设计大点呢

使用特权

评论回复
26
春日负喧| | 2024-11-3 09:00 | 只看该作者
不建议在中断中加过多的程序处理函数哈

使用特权

评论回复
27
哈根达斯uz| | 2024-11-14 22:53 | 只看该作者
中查询已接收到的数据并进行处理

使用特权

评论回复
28
公羊子丹| | 2025-1-24 14:14 | 只看该作者
你用的是环形缓冲区吗?DMA接收的时候最好用环形缓冲区,这样不会因为覆盖数据而出错。

使用特权

评论回复
29
周半梅| | 2025-1-24 14:15 | 只看该作者
我也遇到过类似问题,后来发现是波特率设置不一致,检查一下你的波特率是不是跟调试工具一致?

使用特权

评论回复
30
帛灿灿| | 2025-1-24 14:17 | 只看该作者
DMA模式下要注意空闲中断,可以用USART的IDLE中断来判断数据接收完成,这样会更稳定。

使用特权

评论回复
31
童雨竹| | 2025-1-24 14:18 | 只看该作者
检查一下是不是数据有错位的问题,有时候发送和接收缓冲区的起始位置没对上也会出现这种情况。

使用特权

评论回复
32
万图| | 2025-1-24 14:19 | 只看该作者
你while(1)里查询数据的方法是怎么写的?可能是逻辑处理有问题,建议贴一下代码。

使用特权

评论回复
33
Wordsworth| | 2025-1-24 14:20 | 只看该作者
是不是接收缓冲区不够大?发送的数据量如果超过缓冲区大小,就会导致数据丢失。

使用特权

评论回复
34
Bblythe| | 2025-1-24 14:22 | 只看该作者
如果用的是RTOS的话,注意检查DMA的优先级设置,不然可能会被其他任务抢占。

使用特权

评论回复
35
Pulitzer| | 2025-1-24 14:23 | 只看该作者
看下你的DMA配置,有没有可能是数据的对齐方式或者数据宽度设置错了?

使用特权

评论回复
36
Uriah| | 2025-1-24 14:24 | 只看该作者
你用的什么调试工具?有些工具在发送数据时会带一些不可见字符,检查下是不是这个原因。

使用特权

评论回复
37
Clyde011| | 2025-1-24 14:26 | 只看该作者
数据发出和打印之间的流程太复杂了?建议先单独验证DMA接收是否正常,再一步步排查。

使用特权

评论回复
38
地瓜patch| | 2025-1-24 15:05 | 只看该作者
打印以后,清一次缓冲区,再接受

使用特权

评论回复
39
芯路例程| | 2025-1-25 18:25 | 只看该作者
数据处理功能必须良好,以确保数据处理功能正确处理接收到的数据,避免数据不一致

使用特权

评论回复
40
AutoMotor| | 2025-1-25 21:00 | 只看该作者
不建议在中断中添加过多的程序处理功能

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则