
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的; 问题困扰很久了,请大家帮忙处理下,急急急!!!!!!!!!! |
请教SPI用LL读取的问题
STM32H7使用HAL库如何控制外置USB HS PHY进入低功耗
请问如何在下载程序时保护flash中的用户数据不被覆盖?
H723ZG开发板的下载口可以使用串口功能吗
nanoEdgeAI部署在keil5出现的问题
stm32H755BIT6 TIM1中断问题
用cubemx配置好串口后,再配置一个adc输入就会卡在HardFault_Handler里不动了。
STM32H743使用DSP进行矩阵求逆计算出现的问题
STM32H750 定时器配置
求STM32H503或STMH723 SPI-DMA参考例程
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在任务里处理