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条回答
a732538
1楼-- · 2019-07-15 08:07
 精彩回答 2  元偷偷看……
你我然后
2楼-- · 2019-07-15 10:35
xiuzhen122 发表于 2019-1-4 06:21
本帖最后由 魏科 于 2015-4-22 10:36 编辑

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

很明显楼主是在不带操作系统的情况使用串口。
你我然后
3楼-- · 2019-07-15 14:07
给你这个建议,我们可以灵活变通,HAL_UART显然是接收固定字节,那我们可以在发送的时候对数据进行对齐啊。
xiuzhen122
4楼-- · 2019-07-15 19:21
你我然后 发表于 2019-1-4 07:52
很明显楼主是在不带操作系统的情况使用串口。

不好意思,我比较笨,没有明显看出来楼主是否带操作系统,其实带不带操作系统又有什么区别呢!
sihanxie
5楼-- · 2019-07-15 19:40
xiuzhen122 发表于 2019-1-4 08:19
不好意思,我比较笨,没有明显看出来楼主是否带操作系统,其实带不带操作系统又有什么区别呢!

osSemaphoreCreate()函数没找到 不带操作系统是不是没用这个函数啊?

劳动节才开始认识stm32
selinali0112
6楼-- · 2019-07-15 21:50
 精彩回答 2  元偷偷看……

一周热门 更多>