这两天调用了原子哥F407的环境工程写一个DMA+串口不定长发送,发现了一些问题,求大佬指点。
主要原因是在设置接受数据长度Length后,单片机只能接受Length/2-1个长度,超过这个长度后,发送和接受都处于一种卡死状态,如设置Length为20,超过第9个字节后开始卡死现象
具体如下:长度<9时反馈正常,接受正常


长度>9之后,第一次接受正常,但是串口并没有输出,后续就一直卡死

之后接受也不正常,程序一直卡死了


后面我用Cubemx生成,,cubemx的接受发送都是正常的,但是我把cubemx的usart.c的调进原子哥的工程也是这个现象,只要是在>Length/2-1后,都是这个现象,我最开始还以为是__HAL_LOCK的问题,但是我把玩意儿注释或者改了还是没啥变化,有没有佬知道原子哥的这个问题是什么?
主要原因是在设置接受数据长度Length后,单片机只能接受Length/2-1个长度,超过这个长度后,发送和接受都处于一种卡死状态,如设置Length为20,超过第9个字节后开始卡死现象
具体如下:长度<9时反馈正常,接受正常


长度>9之后,第一次接受正常,但是串口并没有输出,后续就一直卡死

之后接受也不正常,程序一直卡死了


后面我用Cubemx生成,,cubemx的接受发送都是正常的,但是我把cubemx的usart.c的调进原子哥的工程也是这个现象,只要是在>Length/2-1后,都是这个现象,我最开始还以为是__HAL_LOCK的问题,但是我把玩意儿注释或者改了还是没啥变化,有没有佬知道原子哥的这个问题是什么?