找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STM32蓝牙接收乱码

查看数: 6112 | 评论数: 10 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-7-15 22:06

正文摘要:

程序是STM32蓝牙串口程序,单片机接收数据,然后返回给手机该数据。现象:(1)不连接蓝牙模块,XCOM正常接收

回复

ID:917614 发表于 2021-7-16 21:15
https://blog.csdn.net/xiaolong11 ... e/details/116707684  

可以看看这个 我觉得遇到问题你一个一个排除,,先看看硬件的连接和蓝牙模块是否有问题,,
再去看你的程序,,我觉得问题在于你的程序。。
ID:891306 发表于 2021-7-16 18:39
会不会是串口1时钟频率太高,单片机接收补刀手机发来的数据,有没有这种可能?
ID:891306 发表于 2021-7-16 17:58
shumivan 发表于 2021-7-16 17:11
1.首先你的串口不只是有比特率,还有校验位,停止位,都确定无误;

蓝牙的校验位这些设置是默认出厂设置,代码的是8位数据位,1位停止位,均无误
ID:891306 发表于 2021-7-16 17:57
1105730718 发表于 2021-7-16 14:20
大概看了下,提出几个疑问:
1,这个代码项目是要用单片机做桥梁,实现串口助手和手机蓝牙助手的通信吗?
2 ...

非常感谢大佬回复,对于你的疑问,我解释一下:
(1)代码项目是手机app发送一个字符,单片机返回给手机该字符
(2)这个代码是用洋桃电子的例程修改的,在我不连接蓝牙模块时,单片机是可以在串口助手上返回数据,乱码是发生在连接蓝牙后。。。
(3)蓝牙和单片机的rx,tx交叉连接,应该没问题
(4)蓝牙模块要求5V供电,单片机是连接数据线供电
(5)经过多天的调试,发现在有些时候,蓝牙和单片机可以正常传输数据;但在大部分时候是乱码
ID:81196 发表于 2021-7-16 17:11
1.首先你的串口不只是有比特率,还有校验位,停止位,都确定无误;
ID:377268 发表于 2021-7-16 14:20
大概看了下,提出几个疑问:
1,这个代码项目是要用单片机做桥梁,实现串口助手和手机蓝牙助手的通信吗?
2,如果要实现双向通信,蓝牙模块和电脑串口助手得各自分别占用一个串口,我看你代码只开了串口1,只能是单向通信:即PA9接蓝牙PA10接USB-TTL,实现电脑发,单片机收,并转发给蓝牙模块(也就是转发给手机);二是反过来接,传输方向相反。
3,串口中断服务函数中没进行中断标志位的清除,会造成程序死在中断。
结论:你的(2)图电脑发送a之后,进入中断并且无法退出,则不停执行printf(“%c”,receivedata);所以a之后会有乱码, 那是接收寄存器里的随机数据。至于蓝牙发送后电脑收到????,大概率是接线错误,收到了非显示字符,串口软件自动填充成了?。
如果数据线都接的正常, 建议检查下供电。单片机3.3还真不一定行。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

ID:891306 发表于 2021-7-16 10:20
适得府君书 发表于 2021-7-16 08:56
蓝牙和单片机都是串口通讯的话没啥时序对不对的问题。只有波特率对不对。串口通讯出现乱码很大可能是波特率 ...

单片机程序波特率为4800,蓝牙我用USB-TTL测试后,也是4800
ID:891306 发表于 2021-7-16 10:19
devcang 发表于 2021-7-16 09:55
蓝牙模块,本身要设置波特率的。
四者的波特率,都要对应的
手机端 ------ 蓝牙模块  ----- 单片机   --- ...

手机端。。可以设置波特率吗?
ID:277550 发表于 2021-7-16 09:55
蓝牙模块,本身要设置波特率的。
四者的波特率,都要对应的
手机端 ------ 蓝牙模块  ----- 单片机   -------- 电脑端
ID:367934 发表于 2021-7-16 08:56
蓝牙和单片机都是串口通讯的话没啥时序对不对的问题。只有波特率对不对。串口通讯出现乱码很大可能是波特率不对。蓝牙模块的波特率。单片机的波特率。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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