HC06蓝牙模块向单片机发送的数据不符合ASCII码
我用HC06与计算机相连,用手机蓝牙发送数据给蓝牙模块,用计算机的串口调试助手观察收到的数据的确是我发送的数据,但是,我用HC06蓝牙模块与51单片机串口通信的时候发送的...
我用HC06与计算机相连,用手机蓝牙发送数据给蓝牙模块,用计算机的串口调试助手观察收到的数据的确是我发送的数据,但是,我用HC06蓝牙模块与51单片机串口通信的时候发送的数据和收到的数据不符合ASCII码,有一定的偏移量,比如说我发送“A”给计算机,计算机显示为“A”或者0x41,发送“A”给与单片机相连的蓝牙模块,收到的数据让LED灯显示却是二进制10000001,ASCII码应该是01000001,这是为什么?
展开
4个回答
展开全部
这样的,蓝牙是以16进制输送8位数据的,你在单片机的程序有没有设定好?例如,波特率(模块默认9600),还有校正位,奇or偶 校正?还有你的程序的中断符合了发送协议没?
更多追问追答
追问
这个我试了一下,在电脑上串口调试助手上可以设置波特率和数据传送格式,我选的是9600波特率,8位数据位,无校验,停止位为1,符合51单片机串口通信模式1,电脑串口调试助手在这种模式下也可以正确接收数据,在换了波特率后就接收错误了,因此我51单片机也设置了串口通信模式1和9600波特率,这点应该是没错。另外你说的程序的中断的发送协议是什么意思,不是特别理解,希望能解释一下谢谢~
追答
我说的中断就是你是接受完一个字节后有没有触发中断服务?我做的是AVR和51差不多,我上次就是忘了添加中断服务程序而导致接受出错。你的情况很大可能就是程序没写对。你的通信模式1中用到的中断都要写在程序里面。看了你的程序,没有添加中断服务程序。
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
应该发送格式与接收格式不符合。
追问
请问如何查看或者设置发送或者接收格式?是不是改一下单片机串口通信的模式就可以匹配?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好我遇到跟你一样的问题,也是SBUF读出的数值有偏差,不知道楼主解决没有,麻烦分享下~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是单片机的问题,估计是晶振或者单片机设置的问题吧
更多追问追答
追问
请问那应该如何设置单片机?是改一下串口通信的模式吗?波特率设置的都是一样的
追答
用的晶振是多少,代码呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询