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

[复制链接]
2101|3
 楼主| wdliming 发表于 2013-2-18 20:53 | 显示全部楼层 |阅读模式
最近又再接pic的小项目了,但是在串口输出到电脑的时候,总是出问题,在这里我首先确认一下软件商是否有问题,代码如下:下面是main函数

  1. int main()
  2. {
  3.     initial();                        //System initialization on PIC MCU

  4.     introduction();

  5.     while(1)
  6.     {
  7.         //operation();
  8.         if(comsendFlag == 1)
  9.         {
  10.                 ComDataSendMessage();
  11.                 comsendFlag = 0;
  12.         }
  13.        
  14.     }

  15.     return 0;
  16. }
中断函数:

  1. //Interrupt Period
  2. void interrupt ISR(void)
  3. {
  4.     if (T0IE && T0IF)                                                 //10ms判TMR0 中断
  5.     {
  6.         TMR0=0X28;                                                //******TMR0 中断服务*****10MS
  7.         T0IF = 0;                                                    //清除TMR0 中断标志

  8.         //send signal every 1 sec
  9.         comsendCount++;
  10.         if(comsendCount > TIME_SECOND_ONE)        //reach to 1 sec
  11.         {
  12.             comsendCount = 0;
  13.             //if(comsendFlag == 0)
  14.                     comsendFlag = 1;
  15.         }
  16.      }
  17. }
初始化函数:
  1. void initial()
  2. {
  3.     PORTA=0x00;                        //Clear I/O port
  4.     PORTB=0x00;
  5.     PORTC=0x00;

  6.     CMCON=0x07;                        //shutoff comparision

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

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

  11.     PORTA=0x00;
  12.     PORTB=0x00;
  13.     PORTC=0x00;                        //Clear I/O port

  14.     //PR2=24;
  15. //    CCP1CON=0x0f;
  16. //    CCPR1L=0x00;                         //0%
  17. //
  18. //    CCP2CON=0x0f;
  19. //    CCPR2L=0x00;                         //0%
  20. //
  21. //    T2CON=0x04;                          //start time2  and prescaler 1:1
  22. /****Timer0 SET**************************************************************/
  23.     OPTION=0x86;                        //time0  1:128
  24.     TMR0=0X16;

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

  35.     SSPEN = 0;
  36.     GIE=1;
  37.     T0IE=1;
  38. }
看了看pic16f873a的手册,感觉没问题啊,不知怎么回事,超级终端里输出的总是不理想,哪位大侠能否指点一下啊,谢谢啊!
diweo 发表于 2013-2-19 07:55 | 显示全部楼层
代码里好像没有看到TXREG。。。。
yewuyi 发表于 2013-2-19 08:41 | 显示全部楼层
一见到让看代码就头大,谁有空给你一条条去检查代码呢?

所以,这种事情只能靠自己拿DATASHEET一条条检查是否有遗漏或错误了。
 楼主| wdliming 发表于 2013-2-19 11:12 | 显示全部楼层
自己已经解决了,电源电压不稳定。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

76

主题

914

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部