|
因为程序耗时大概10ms(已用HAL_Delay代替)左右会生成两组大小1104的数据 波特率1250000 使用两路串口DMA发送 485芯片(只发送 485使能引脚不会改变)等外围电路满足要求(只接收的情况 同平台已经测试过串口DMA循环模式 并把数据保存至SD卡 数据无异常) 但是在实际运行中会出现数据错误情况。 剔除多余代码,生成两组数据 while中循环发送 延时10ms 发现数据出现掉帧情况 以为两路数据需要互相等待没发送完成 但是使用示波器测试发现两组数据基本是同时发出,并且在10ms内已经发送完成 请问代码中是否存在问题,谢谢 |
【2026.10.18】每日签到:STM32H735G-DK评测.接收串口字符并显示在LCD—text中
STM32C542RC开发板启用PWM后对串口通讯造成影响
【2026.10.17】每日签到:STM32H735G-DK评测.TouchGFX在LCD—text中显示动态字符
完成了STM32C542RC开发板的串口通讯实验的视频
STM32C542RC开发板的串口DMA发送实验出错(已解决)
使用STM32H743IIT6,读写MCU内部Flash固定地址与固定长度的区域,出现随机性HardFault错误,请问是什么原因?
STM32G071C8的ADC问题,测量6路交流信号,端口使用PA2-PA7,信号来自电流互感器次级用20欧电阻转为电压信号,并联T4,通过1K,104滤波后到ADC引脚,个别芯片出现PA3结果是固定值,即使直接把引脚对地短短接,结果也是2000多个数,可能是什么原因
STM32L562DK探索板——串口通讯重定向出错
STM32H7A3VGH6Q D1、d2、E1、E2是SMPS功能对应的引脚,裸片量测D2与C1、D1对应的地没有短路现象,PCB板量测也没有短路,但芯片贴到板上D2 VLXSMPS就会与地短路。不知是啥原因。是否芯片型号与批次不对?
STM32与JTAG电平不匹配
微信公众号
手机版
谢谢 我排查了一下 应该是不能同一台电脑接收(换其他品牌电脑试了) 用两台电脑分别接收就好了(除了第一包数据错误) 很奇怪的问题
理论上8ms 多就发送完了,从波形上看也是这样。
与25ms 延时相差太多太多了。
会不会瓶颈在接收的方式上了?
考虑换个方式测量发送的数量看看。
如果是normal模式,且保证延时时间内传输能完成的话,就不该有什么问题。
如果circular模式的话,那个延时时间可能不太好设置,不管怎么配置,终究
都会出现丢帧的情况。 不过从你代码来看,不像使用循环模式,因为循环模式
不用反复启动。
所以,你如果使用的是Normal模式还丢帧的话,或许看看别的方面的原因。
主程序如下
如果是,那不是已经发出来了么,看看波特率再调整一下看看是否是期望的。
另外从幅度看,似乎测量的效果不佳。
你好 是已经发出来的而且能循环发送 测量只是为了确定是不是能在10ms内发完(因为发现要延时25ms数据才正确 但是这样就失去了DMA的意义) 但是实际电脑接收到的数据出现了掉帧(不是乱码)
你好 发送我使用的是normal模式 测试只用一个串口发送的话 延时10ms发送的数据正常未出现掉帧 但是用两个串口发送就会都出现问题 理论上两个DMA不应该是独立的吗(使用DMA1 不同数据流 和分别使用DMA1和DMA2都试过)
你现在用到UART1 和 UART5, 你将内存区分开测试下,比方一个使用SRAM1,一个使用SRAM2。
谢谢 我排查了一下(换了好几个串口助手UartAssist、sscom都试了)最后发现两个串口都发送但是电脑只接收一个串口的数据问题就小很多 换两台电脑分开接收就可以了(除了第一包数据出现问题) 不能同一台电脑收……神奇的问题
[md]嗯。
如果你发送端使用DMA Normal模式,发送端没有啥问题。看来问题出在PC端接收处理能力,或许你可在UART通信中加上流控。