UART 问题请教

2019-07-20 03:40发布

串口接收1个字符会产生中断,在UART_Receive_IT里面 pRxBuffPtr++,RxXferCount--
当    -- RxXferCount = 0,表示接收完了此次的所以字符,进入回调函数 HAL_UART_RxCpltCallback,
但是为什么在回调函数里还要判断是否接受完成呢?还是说我的理解有什么错,请大神指出改正,TKS!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
亦辰
1楼-- · 2019-07-22 06:07
烈日灼心 发表于 2019-2-26 10:55
是进入回调函数之后,说明已经接收完成所有的字符了,回调函数只是对数据最后的处理,这个应该类似于接收 ...

你这个说法还是有问题,IT接收方式是每收到一个数据就会产生一次中断,就会进一次回调函数,在回调函数内处理完后再接收
烈日灼心
2楼-- · 2019-07-22 07:36
亦辰 发表于 2019-2-26 11:50
你这个说法还是有问题,IT接收方式是每收到一个数据就会产生一次中断,就会进一次回调函数,在回调函数内 ...

比如: 我要发 abcd , 内部程序是发送a出去之后就会进入回调函数?
亦辰
3楼-- · 2019-07-22 12:35
 精彩回答 2  元偷偷看……
烈日灼心
4楼-- · 2019-07-22 13:49
亦辰 发表于 2019-2-26 14:11
是的,可以从这两行代码理解下
        HAL_UART_Receive_IT(&UART1_Handler, (u8 *)aRxBuffer, RXBUFFE ...

明白了,RXBUFFERSIZE = 1,是指每次接收到1个字符,都会进回调函数,那如果RXBUFFERSIZE = 2,是不是要把2个字符都接收完成之后才进入回调函数?

一周热门 更多>