
因为程序耗时大概10ms(已用HAL_Delay代替)左右会生成两组大小1104的数据 波特率1250000 使用两路串口DMA发送 485芯片(只发送 485使能引脚不会改变)等外围电路满足要求(只接收的情况 同平台已经测试过串口DMA循环模式 并把数据保存至SD卡 数据无异常) 但是在实际运行中会出现数据错误情况。 剔除多余代码,生成两组数据 while中循环发送 延时10ms 发现数据出现掉帧情况 以为两路数据需要互相等待没发送完成 但是使用示波器测试发现两组数据基本是同时发出,并且在10ms内已经发送完成 请问代码中是否存在问题,谢谢 |
STM32CubeMX在配置DCMI的腳位時,在Mode的選項中, 只有8bits, 10bits與12bits, 為何沒有14bits?
STM32H7双核调试问题:CM7能成功调试但CM4始终报"Failed to read ROM table via AP 3"错误
MC SDK为什么不支持H743,看样子只支持H745H755
分享一个PWM+DMA的BUG
STM32的TIM触发SPI的DMA发送使用NSS时MSSI的问题
hrtim里update reset和reset update同时打开不会互相激励吗,另外为什么现在定时器周期值不用-1了
PWM+DMA求助
想点亮LED灯,stlink连接有问题
STM32H743使用EXIT0触发SPI的DMA发送数据
如何使用cubeide配置stm32H750环境,但是在SYS中没有debug选项,也就选不了serial wire,
谢谢 我排查了一下 应该是不能同一台电脑接收(换其他品牌电脑试了) 用两台电脑分别接收就好了(除了第一包数据错误) 很奇怪的问题
理论上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通信中加上流控。