为何stm32使用cubemx生成的串口DMA发送只发送部分数据
参考了https://www.stmcu.org.cn/module/forum/thread-614657-1-1.html?original《HAL库UART按DMA方式发送和接收函数简析及测试》的文章我是用的是stm32F103C8T6,用cubemx4.27导入楼主的工程,代码也是一模一样的,为何会出现以下的现象:
发送和接收个数不相符啊??
wdliming-222461 发表于 2019-8-10 13:36
发送和接收个数不相符啊??
可能是系统时钟没有工作在正确的72MHZ,波特率有误。 wenyangzeng 发表于 2019-8-10 14:35
可能是系统时钟没有工作在正确的72MHZ,波特率有误。
这个不是问题,肯定是72MHZ的。 那位大神可以帮忙解释啊~??? 你DMA接收字符长度是多少,一般如果你设置20个字节那么你应该每20个字节发送,你发送几百个字节试一试,如果几百个字节误差20个字节内那可能就是你DMA接收字节问题了(这个应该不是问题是DMA机制问题,你要是觉得不对你把DMA接收字节改为1就可以了),如果误差大于20个有可能是你中断处理时间太长导致数据丢失或者你配置问题,建议你你一个一个字节发送看看效果 我改为1试过了,但是还是有问题的,如果我换成中断接收,就没问题,发送和接收都是相同的字符。 你若安好_清风徐来 发表于 2019-8-12 10:30
你DMA接收字符长度是多少,一般如果你设置20个字节那么你应该每20个字节发送,你发送几百个字节试一试,如 ...
我改为1试过了,但是还是有问题的,如果我换成中断接收,就没问题,发送和接收都是相同的字符。
wdliming-222461 发表于 2019-8-12 15:17
我改为1试过了,但是还是有问题的,如果我换成中断接收,就没问题,发送和接收都是相同的字符。
...
建议上传代码,我也一时间找不出问题所在 你若安好_清风徐来 发表于 2019-8-13 09:20
建议上传代码,我也一时间找不出问题所在
好的好的,我回家把代码上传看看,反正是按照连接上面的来的。
页:
[1]
2