微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机 PIC16F688 问题,串口通讯问题 数据接收 怎么接收不到?感觉没有进入中断,各位大神新年快乐,求帮忙

单片机 PIC16F688 问题,串口通讯问题 数据接收 怎么接收不到?感觉没有进入中断,各位大神新年快乐,求帮忙

时间:10-02 整理:3721RD 点击:
void init(void)        //初始化
{
        TRISC=0x25;     //0b00100101
        PORTC=0x00;
        TRISA=0X38;
        PORTA=0X00;
        //ADCON0=0X98;
        //ANSEL=0X40;
        //OPTION=0X87;
        //INTCON=0XC0;
        //PIE1=0X00;
        //PIR1=0;
        OPTION=0X0E;
        SYNC=0;                        //异步接收模式
        SPEN=1;                        //串行端口使能
        CREN=1;                        //使能接收
        RX9=0;          //接收8位数据  可能是此处有问题,示波器显示数据格式:起始位(0)+数据位(8位)+校验位(0)+停止位(1)
        ABDEN=1;                //启动自动波特率
        BRGH=1;                        //高速波特率打开
        BRG16=1;                //选择16位波特率发生器
        SPBRG=0XCF;     //异步波特率设置为9600
        GIE=1;          //开启全局中断
        PEIE=1;                        //开启外设中断
        RCIE=1;                        //接收中断
}
void interrupt usart(void)
{
        unsigned char recdata;
        if(RCIE&&RCIF)
        {
                recdata=RCREG;                //后面需完善
                RCIE=0;                                        //
                if(recdata==start_data)
                {
                        RC_lable=1;
                        k=0;
                        num=0;
                }
                if(((recdata==0xC6)||(recdata==0x56)||(recdata==0x66))&&(num>=3))
                {
                        RC_lable=0;
                }
                if(RC_lable==1)
                {
                        DATA[k++]=recdata;
                        num++;
                }
        }
}

。本帖子已结帖

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top