找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2561|回复: 5
打印 上一主题 下一主题
收起左侧

单片机hc-05蓝牙串口通信程序问题

[复制链接]
跳转到指定楼层
楼主
ID:511093 发表于 2019-4-26 16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
20黑币
芯片是51单片机的,想实现的功能就是通过手机蓝牙连接HC-05之后,手机发送1,执行一个程序,发送2,执行另外一个程序……我的串口部分程序如下,在硬件上做实验的时候我发送1或者0都没有反应。但我调试的时候在电脑的串口调试程序上的接收框内可以接收到我发送的信息。我把串口部分程序去掉后硬件能正常实现功能,只是没了蓝牙通信。各位大神看看我串口这部分程序有哪些问题,拜谢!!

     void InitUART(void)             //串口初始化
{
    SCON=0x50;                        
        TMOD=0x20;                        
        PCON=0x00;                        
        TH1=0xfd;                                
        TL1=0xfd;
        ES=1;                                                
        EA=1;                                                
        TR1=1;                                       
}



void UARTInterrupt(void) interrupt 4           //串口中断函数
{   
    u8 com;
   
        if(RI)        
            com = SBUF;               
            RI=0;
         switch(com)              //接收到字符并执行功能
        {
            case '1': while(1) lin1();break;
            case '0': BRAKE();break;
           
        }               
        
}



最佳答案

查看完整内容

#include //?????????д???????????? //#include #define uint unsigned int //???壬?????涨???????д??? #define uchar unsigned char sbit LED0=P1^0; sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3; sbit LED4=P1^4; sbit LED5=P1^5; sbit LED6=P1^6; sbit LED7=P1^7; void main (void) { SCON = 0x50; // SCON: ??1, 8-bit UART, ?????? TMOD |= 0x20; TH1=0xfd; //??????9600 ??? TL1=0xfd; ...
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:405033 发表于 2019-4-26 16:00 | 只看该作者
#include <reg52.h> //?????????д????????????
//#include <stdlib.h>
#define uint unsigned int //???壬?????涨???????д???
#define uchar unsigned char

sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit LED4=P1^4;
sbit LED5=P1^5;
sbit LED6=P1^6;
sbit LED7=P1^7;

void main (void)
{
        SCON = 0x50;         // SCON: ??1, 8-bit UART, ??????
        TMOD |= 0x20;
        TH1=0xfd;                 //??????9600 ???
        TL1=0xfd;
        TR1= 1;
        EA= 1;                         //?????ж?
        ES= 1;                         //???????ж?
        while (1)                 //??????????κζ???
        {

        }
}
/******************************************************************/
/* ?????ж????*/
/******************************************************************/
void UART_SER () interrupt 4
{
        uchar n;         //???????????
        if(RI)                 //?ж???????ж????
        {

                n=SBUF; //???????????
                RI=0;         //???λ????
               

                switch(n)
                {
                        case 0x61:LED0=1;LED1=1;LED2=1;LED3=1;break;
                        case 0x62:LED0=0;LED1=0;LED2=0;LED3=0;break;
                        case 0x41:LED4=1;LED5=1;LED6=1;LED7=1;break;
                        case 0x42:LED4=0;LED5=0;LED6=0;LED7=0;break;
                   }
        }

}

你看看这个能不能用吧,0x61是a,依次下来时吧,A,B
回复

使用道具 举报

板凳
ID:407089 发表于 2019-5-8 15:33 | 只看该作者
把case后面'1'、'0'的引号去掉看看。
回复

使用道具 举报

地板
ID:511093 发表于 2019-5-11 16:27 | 只看该作者
疯子本人 发表于 2019-4-26 16:00
#include  //?????????д????????????
//#include
#define uint unsigned int //???壬?????涨???????д? ...

找了其他的例程,问题解决了,仍然感激不尽!
回复

使用道具 举报

5#
ID:511093 发表于 2019-5-11 16:28 | 只看该作者
brew9 发表于 2019-5-8 15:33
把case后面'1'、'0'的引号去掉看看。

感谢回复,虽然不是这个原因……
回复

使用道具 举报

6#
ID:519121 发表于 2019-5-11 20:32 | 只看该作者
楼主能把完善的程序发我一份吗 我最近也在做这蓝牙传输方面的 1786701614@qq.com 感激不尽
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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