ST意法半导体
直播中

刘满贵

7年用户 1496经验值
私信 关注
[问答]

如何通过UART接收未知长度的数据?

您好,我正在使用 STM32L476RG 并尝试通过 UART 接收数据。
当我使用以下代码时:
诠释主要(无效){
         ...
         HAL_UART_Receive_IT(&huart4, data_RX,20);
         ....
}
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){

        printf("n收到的消息是:%s",data_RX);
}
如果仅接收到的消息长度为 20 个字符,则此方法工作得很好。
但如果消息是例如 15,则不是。我知道当我的 data_Rx 已满时,它将被打印出来。
我想知道是否有人遇到过这个问题并成功实施了解决方案。我尝试了一些我在互联网上找到的代码,但其中很多地方确实令人困惑。
对不起,如果这个话题已经被讨论过。
任何帮助都是极好的!
谢谢你。








回帖(1)

朱翼

2023-1-6 09:41:00
是的,当每个字符到达时,您可以在中断处理程序中的简单状态机中进行管理。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分