
因为程序耗时大概10ms(已用HAL_Delay代替)左右会生成两组大小1104的数据 波特率1250000 使用两路串口DMA发送 485芯片(只发送 485使能引脚不会改变)等外围电路满足要求(只接收的情况 同平台已经测试过串口DMA循环模式 并把数据保存至SD卡 数据无异常) 但是在实际运行中会出现数据错误情况。 剔除多余代码,生成两组数据 while中循环发送 延时10ms 发现数据出现掉帧情况 以为两路数据需要互相等待没发送完成 但是使用示波器测试发现两组数据基本是同时发出,并且在10ms内已经发送完成 请问代码中是否存在问题,谢谢 |
STM32L433VCT6 进入STOP模式2之后,功耗依然和正常运行模式没有差别,请教大神
我想实现三对移相PWM(占空比为50%)输出,前两对是互补输出,用了TIM1的CH1/CH1N和CH2/CH2N。第三对用了TIM1的CH3和TIM8的CH2,类似于互补输出。需要以TIM1的CH1/CH1N为参考,其余两对怎样实现占空比不变,相移可调呢?另外TIM8的CH1和CH3的PWM需要输出高电平
STM32407 使用串口闲时中断+DMA方式接收最大接收字节是多少
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
STM32H750使用FMC
cubemx导入模型后找不到keil找不到工程内的模型的相关文件
STM32H723 TIM1输出三相50%的占空比,TIM_CH3的输出上升沿略比TIM_CH1和TIM_CH2超前,这是哪里配置有问题吗
stm32h7 用pb3、pb4、pb5、pa15做spi3后,mx组态时debug里选择serial wire,程序里加了禁用jtag,spi3口不能工作
MCSDK不能启动电机?
STM32H745启动与烧录问题
谢谢 我排查了一下 应该是不能同一台电脑接收(换其他品牌电脑试了) 用两台电脑分别接收就好了(除了第一包数据错误) 很奇怪的问题
理论上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通信中加上流控。