
1、函数: HAL_UARTEx_ReceiveToIdle_DMA(&huart1,usart1_dma_rx.RX_Data,USART_DMA_RX_LEN_MAX); __HAL_UART_DISABLE_IT(&huart1, DMA_IT_HT); 2、发送数据包1:be2803036de1000000000000000001000000000000000200000000000000030000000000000082ed 发送数据包2:be1c010146020100000100015000b400141e011e1e281408000020ed 发送间隔50ms以内; 3、接收到的数据包:be1c01016de1000000000000000001000000000000000200000000000000030000000000000082ed 前4个字节:be1c0101属于发送数据包1的; 剩余其他字节:属于发送数据包2的; 问题困扰很久了,请大家帮忙处理下,急急急!!!!!!!!!! |
STM32H750XBH6的外置SDRAM相关问题
FW_H7 V1.12.1-HAL库DMA双缓冲配置
STM32H743vit6无法连接
X-CUBE-AZRTOS-H7
请教下关于 stm32h7x5,7x7 系列双核 dsi ltdc 显示驱动的时钟频率配置 ?
STM32H750VBT6 + W5500 + 激光雷达点云
STM32H755双核编程如何入门
请教SPI用LL读取的问题
STM32H7使用HAL库如何控制外置USB HS PHY进入低功耗
请问如何在下载程序时保护flash中的用户数据不被覆盖?
file:///C:/Users/Tony-1/AppData/Roaming/LarkShell/sdk_storage/281965e1b5f203c1225065ca6caaacf9/resources/images/Hbl7ez992l.jpg[file:///C:/Users/Tony-1/AppData/Roaming/LarkShell/sdk_storage/281965e1b5f203c1225065ca6caaacf9/resources/images/GcRf0JRCaC.jpg](file:///C:/Users/Tony-1/AppData/Roaming/LarkShell/sdk_storage/281965e1b5f203c1225065ca6caaacf9/resources/images/GcRf0JRCaC.jpg)
file:///C:/Users/Tony-1/AppData/Roaming/LarkShell/sdk_storage/281965e1b5f203c1225065ca6caaacf9/resources/images/ybleU6GAFj.jpg
代码截图
或者用另一个STM32模拟个数据调试一下,看看哪里导致的接收对不上。
空闲帧好像是没有的,感觉是上一帧数据还没有处理完,下一帧数据就把他覆盖了,导致我们拿到的就是两包叠加的数据;
[md]这是程序逻辑问题。
之前的数据没处理完又来新的数据了发生覆盖,想办法接收处理弄快点;发送是否可以放慢点;
接收可以考虑基于DMA半传输完成和传输完成来实现。。
通常串口不会很快,如果怀疑中间没有idle帧,可以将接收的buffer和数量扩大,验证一下是不是都能收到。
[md]已经解决,采用三个buf可接受数据,buf1接收到数据,然后使用buf2接收数据,接受完成在使用buf3接收,buf3接收完成再使用buf1接,这样循环接受下去;接收到的数据buf在任务里处理