轻易不求助,但是这蓝牙串口模块真奇怪

2019-07-16 02:08发布


#include <reg51.h>
#include <intrins.h>
sbit P32=P3^2;
unsigned char tmp;
void send_char(unsigned char txd);

main()
{        unsigned char TEMP=0XFF;
        TMOD = 0x20;                        // 定时器1工作于8位自动重载模式, 用于产生波特率
        TH1 = 0xFD;                                // 波特率9600
        TL1 = 0xFD;
       
        SCON = 0x50;                        // 设定串行口工作方式
        PCON &= 0xef;                        // 波特率不倍增
               
        TR1 = 1;                                // 启动定时器1
        IE = 0x0;                                // 禁止任何中断
        while(1)
        {
       
                if(RI)                                                // 是否有数据到来
                {
                        RI = 0;                  
                        tmp = SBUF;                                // 暂存接收到的数据
                       send_char(tmp);                        // 能回传接收到的数据
                        P0=tmp;                        // 数据传送到P0口           但是根本没用
                        P1=tmp;                       //传到P1也没用,电平无变化
                        send_char(tmp);              //尝试再回传一次,发现收不到第二次了
                }
       
        }
}
void send_char(unsigned char txd)
// 传送一个字符
{
        SBUF = txd;
        while(!ti);                                // 等特数据传送
        TI = 0;                                        // 清除数据传送标志
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。