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 06:47
xiuzhen122 发表于 2019-1-4 06:21
本帖最后由 魏科 于 2015-4-22 10:36 编辑

大家好,这是我在这个社区第一次发言,我开始也遇到这个问题,后来在百度和google都没有查到好的解决办法,我用的是串口中断,如果单纯按照大家说的去做代码会是这样的:

你这个是不错,为什么非得添加一个:
/*让串口信号量耗尽*/
          while(osOK != osSemaphoreWait(uc1sem_id,0));
直接设置这个信号量可用就行了。

一周热门 更多>