野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 21567|回复: 3

串口接收的非阻塞状态(通过中断接收)STM32H7

[复制链接]
发表于 2021-8-24 19:54:58 | 显示全部楼层 |阅读模式
本帖最后由 zrf1999 于 2021-9-2 19:20 编辑

最近在做一个智能车,想要让前车通过蓝牙发送数据给后车,后车用这个数据做一些事。
但是在通信的时候出了一些问题,我使用前车的蓝牙向后车发送数据,在后车接受数据的时候出现了一些问题。
我将后车的蓝牙通过一个usb转接口与电脑连的时候,在串口助手上看到发送的数据是正确的的,但是我在将蓝牙与后车的STM32H7连接的时候发现不能接收的数据。
之后我试着在data_task任务里加了一个打印,发现我的这个任务只执行了一次。之后我又把打印前移后移,发现是因为串口接收这个地方卡住了,不会往下执行。想求教大神帮忙找找哪里出了问题。




现在问题解决了,看了一个网上找的H7的例程,在初始化这里加了中断。还在中断文件里加了一段程序。了使用中断传输,然后就可以了。可能就是因为阻塞的问题,但我不太懂这里,在网上查了说通过中断传输是非阻塞,就用了中断传输。
最后还真行。




野火论坛202108241954504657..png
野火论坛202108241949385001..png
野火论坛202108241948252507..png
野火论坛202108311800369463..png
野火论坛202108311758595261..png
野火论坛202108311758315418..png
回复

使用道具 举报

发表于 2021-8-25 20:14:31 | 显示全部楼层
先检查car1/car2/car3这三个变量的变化。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-26 09:10:27 | 显示全部楼层
hansome 发表于 2021-8-25 20:14
先检查car1/car2/car3这三个变量的变化。

这个变化我是注意了的,我使用的是car2,这个就是接受,我还加了一下打印的代码,发现就是我标红的那一行接受代码卡住了。而且,如果我把这个接受代码放到循环外,会发现我打印出来的接受到的数据与我发送的数据完全不一致。
回复 支持 反对

使用道具 举报

发表于 2021-8-26 09:48:37 | 显示全部楼层
zrf1999 发表于 2021-8-26 09:10
这个变化我是注意了的,我使用的是car2,这个就是接受,我还加了一下打印的代码,发现就是我标红的那一行 ...

卡住了说明你想收数据的时候其实是没有数据的,你可以用非阻塞方式接收并做个超时退出。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 14:43 , Processed in 0.035516 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表