stm32cube中的HAL库用UART时接收个数参数的提供

2019-07-14 14:48发布

研究了两天cube就发现一个问题,HAL库中UART的操作,有DMA和IT两种方式,发送数据时没有问题,接收数据时的函数
HAL_UART_Receive_DMA(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
和HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, RXBUFFERSIZE)中都必须提供接收个数这个参数,接收时谁能确定究竟是收多少个,这个参数没法提供,那这就没法用了,改他的HAL也不是好办法,这就决定了cube这个东西没法用了.
有碰到这个问题的吗,想用cube,但是诸如此类的问题解决不了就没法用啊
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
7762642422d
2019-07-16 05:12
ke3978 发表于 2019-1-4 07:14
一般不知道个数的都是接收到一个产生中断,然后在中断中放进你的缓存。在主程序中你想怎么整就怎么整。这就是道理。ST的库只是提供了一种方法。用不用用哪个怎么用还是咋自己说了算。

串口一般都有FIFO缓冲,打开这个缓冲,然后减少中断次数,一次可以接受8个或者16个字节,而不是1个字节,效率提升至少8倍或16倍。
接受完数据后再根据自己的实际情况进行数据分析处理。

一周热门 更多>