别着急,慢慢来, 如果我没猜错的话,你的系统应该是:电脑软件sscom---USB转TTL(串口)---HC-05主设备-----蓝牙无线连接-----HC-05从设备-----串口连接到stc89C52RC-----与单片机IO口连接的LED灯。 是这样吧? 首先,根据你的描述:(附:蓝牙可连接,就是接收不了数据),所以我建议你改成这样的系统测试串口接收:电脑软件sscom1---USB转TTL(串口)---HC-05主设备-----蓝牙无线连接-----HC-05从设备-----USB转串口接电脑----sscom2,如果sscom1发送数据,sscom2可以正常接收(按照hex显示),则说明这个系统正常,注意波特率要按照你AT指令配置的进行。如果不正常,你就得再找找蓝牙模块方面的问题了,HC-05的模块的配置应该比较简单,我看网上资料一大堆;如果你实在不知道怎么配置,我们可以再讨论。 其次,如果上面的系统正常,构建下面的系统:电脑sscom1---USB转TTL(串口)---串口连接到stc89C52RC-----与单片机IO口连接的LED灯。 然后通过电脑按照上个系统的sscom2一样的波特率发送收到的一样的数据给stc单片机,看看灯是不是亮灭变化,如果可以就没问题,如果不行,那么你就要看下单片机串口接收的驱动代码或者led灯的控制代码,看你上面的代码没找到问题。 一般如果上面两个系统正常的话,那么你的系统就没理由不正常。 如果是接起来不行的话,可能是: 1. 电平匹配问题,比如3.3V的TX电平发送给5V供电的RX会有电平不匹配的问题,可能收不到数据。 2. 波特率精度匹配太差,可以通过同时更换波特率试试,优先试试9600; 另外还有一些小细节: 例如,你判断的是0x01,那么你应该发送hex的01,而不是1,尽量严禁;若发送字符1,则接收要判断0x31等等;还有TX要接RX,反之亦然,但是有些模块是TX接TX,看标注的是对方还是自身,这个要弄清楚。 好了就说这么多,祝你好运!有问题再沟通。 |
蓝牙配置如下: AT AT+NAME=mc123 AT+PSWD=123456 AT+UART=2400,1,0 |
其实我后来才发现适合蓝牙串口通信的晶振频率是11.0592MHz,12MHz只是用来精确定时 |
燊燊 发表于 2020-7-27 21:50 你是说蓝牙的波特率还是串口发送的波特率? |
1692483014 发表于 2020-7-27 22:31 感谢解答,第一个测试确实不行,第一个互相都确实接收不到信息,第二个可以,但我感觉蓝牙配置没啥问题啊 |
囡嬅 发表于 2020-7-27 21:48 没错,我都搞了好几天了 ![]() |
囡嬅 发表于 2020-7-27 20:41 默认9600,我改成了2400,照片上有 |
波特率115200试试 |
然后检查一下RXD和TXD有没有接错 单片机的TXD接蓝牙的RXD 蓝牙的TXD接单片机的RXD |
你有改过蓝牙的默认波特率吗 首先你得确定这个蓝牙模块的默认波特率是不是2400 |