打印

如次设置pic的串口正确吗?

[复制链接]
1771|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wdliming|  楼主 | 2013-2-18 20:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近又再接pic的小项目了,但是在串口输出到电脑的时候,总是出问题,在这里我首先确认一下软件商是否有问题,代码如下:下面是main函数

int main()
{
    initial();                        //System initialization on PIC MCU

    introduction();

    while(1)
    {
        //operation();
        if(comsendFlag == 1)
        {
                ComDataSendMessage();
                comsendFlag = 0;
        }
       
    }

    return 0;
}
中断函数:

//Interrupt Period
void interrupt ISR(void)
{
    if (T0IE && T0IF)                                                 //10ms判TMR0 中断
    {
        TMR0=0X28;                                                //******TMR0 中断服务*****10MS
        T0IF = 0;                                                    //清除TMR0 中断标志

        //send signal every 1 sec
        comsendCount++;
        if(comsendCount > TIME_SECOND_ONE)        //reach to 1 sec
        {
            comsendCount = 0;
            //if(comsendFlag == 0)
                    comsendFlag = 1;
        }
     }
}
初始化函数:
void initial()
{
    PORTA=0x00;                        //Clear I/O port
    PORTB=0x00;
    PORTC=0x00;

    CMCON=0x07;                        //shutoff comparision

    ADCON1=0x00;                //set A/D:all ANx ANALOG IN

    TRISA=0x3F;                        //RA0 RA1 RA2 RA3 RA4 RA5 ANALOG IN        0011 1111
    TRISB=0x20;                        //RB5 DATA IN ,others D/O                0010 0000
    TRISC=0x00;                        //0000 0000

    PORTA=0x00;
    PORTB=0x00;
    PORTC=0x00;                        //Clear I/O port

    //PR2=24;
//    CCP1CON=0x0f;
//    CCPR1L=0x00;                         //0%
//
//    CCP2CON=0x0f;
//    CCPR2L=0x00;                         //0%
//
//    T2CON=0x04;                          //start time2  and prescaler 1:1
/****Timer0 SET**************************************************************/
    OPTION=0x86;                        //time0  1:128
    TMR0=0X16;

//Serial initial
    TXSTA = 0x04;                        //chose ASYNC high speed 8bit, 0x0000 0100
    RCSTA = 0x80;                        //enable, 0x1000 0000
    TRISC = TRISC|0x80;                //set TRISC<7>:RC7        input
    TRISC = TRISC&0xBF;                //set TRISC<6>:RC6        output
    SPBRG = 71;                                //11.0592MHz,9600
    PIR1 = 0x00;                        //clear interrupt flag
    PIE1 = PIE1|0x20;
    //PIE1 |=
    CREN = 1;

    SSPEN = 0;
    GIE=1;
    T0IE=1;
}
看了看pic16f873a的手册,感觉没问题啊,不知怎么回事,超级终端里输出的总是不理想,哪位大侠能否指点一下啊,谢谢啊!
沙发
diweo| | 2013-2-19 07:55 | 只看该作者
代码里好像没有看到TXREG。。。。

使用特权

评论回复
板凳
yewuyi| | 2013-2-19 08:41 | 只看该作者
一见到让看代码就头大,谁有空给你一条条去检查代码呢?

所以,这种事情只能靠自己拿DATASHEET一条条检查是否有遗漏或错误了。

使用特权

评论回复
地板
wdliming|  楼主 | 2013-2-19 11:12 | 只看该作者
自己已经解决了,电源电压不稳定。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我的未来不是梦

76

主题

913

帖子

4

粉丝