完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近写的一个程序遇到了一些问题,硬件示意图如图所示。 单片机将串口1收到的数据先存一个数组里备用,每个包是类似AA XX XX FF这样的。 然后从数组里提取出XX XX,计算得到一个int值a。 接着将a显示出来,同时把a封装成FE XX XX AA通过串口2发送给HC-05蓝牙模块 。 可问题来了, 在手机还未连接HC-05时(蓝牙模块指示灯快闪),单片机上的数码管能正确显示a。 可是当手机连接到HC-05时(蓝牙模块指示灯慢闪),单片机上就显示0了,似乎是无法从串口1读取到数据了。 手机上收到的是FE 00 00 AA,即得到的a也是0。此时断开连接,单片机又能正常显示a。 希望大神能指点一下哪里可能出问题了。此问题已经困扰我多日了,始终无法找到问题所在。谢谢了! 涉及代码: #define Data_Size 21 //数组长度 int Buffer[Data_Size]; int Pointer=0; int temp; unsigned char al, ah; //保存待发送数据 bit busy=0; void SendtoBluetooth(char low,char high) { while(busy); S2BUF=0xFE; busy=1; while(busy); S2BUF=high; busy=1; while(busy); S2BUF=low; busy=1; while(busy); S2BUF=0xAA; busy=1; } void Uart1() interrupt 4 //串口1 { if(RI) RI=0; if(ti) TI=0; } void Uart2() interrupt 8 //串口2 { if(S2CON & 0x01) S2CON &= 0xFE; if(S2CON & 0x02) S2CON &= 0xFD; busy=0; } void main() { //省略了初始化、设置串口1波特率2400、串口2波特率9600、以及显示部分的代码 while (1) { if(RI==1) { Buffer[Pointer]=SBUF; Pointer+=1; if (Pointer>20) { Pointer=0; ES=0; for(i=0;i<13;i++) { if(Buffer==0xAA) { if (Buffer[i+1]<0x75) { temp=Buffer[i+1]*256+Buffer[i+2]; temp=temp*2.5/1024; } break; } } show(); al=temp%256; ah=temp/256; SendtoBluetooth(al,ah); ES=1; } } } } |
|
相关推荐
5个回答
|
|
可能是 串口1和2切换的问题,你可以这样调试,手机端打开连接蓝牙,用PC串口助手连接串口1 收发数据 看看 单片机收到的数据对不对
评分
|
||
|
||
|
|
你的问题是,串口2一直中断收发数据,所以串口1 得不到中断请求, 你的想办法,叫串口1工作一会,然后让串口2工作一会, 轮流工作 就可以了!希望对你有帮助!
|
|
|
|
我也遇到类似的问题,把两个串口波特率改成一样就好了,请问楼主解决了吗
|
|
|
|
是不是因为没有手动设置suing
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
195 浏览 0 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
172 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
453 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
697 浏览 2 评论
602 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11985 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 09:12 , Processed in 1.114874 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号