串口程序能收 不能发,求教

2020-02-10 08:58发布


#include<pic.h>
#include<pic16lf1933.h>



#define uchar unsigned char
#define uint unsigned int
//PIC16LF1933.H
__CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF);
__CONFIG(WRT_OFF & PLLEN_OFF & STVREN_ON & BORV_LO & LVP_OFF);
uchar recdata;


void delay()
                        {
                                uint k;
                                for(k=300;k>0;k--);                               
                        }

void init()
                {
                                OSCCON  = 0b01110000;               // 4x PLL Is disabled,
                                                                //Internal Oscillator Frequency Select bits . 000x = 8MHz LF
                                                                //SCS<1:0>: System Clock Select bits. 1x = Internal oscillator block
                                TRISC=0XC0; //  IO                         
                                 TRISA=0XC0;  //out
                                 PORTA=0XC0;                                
                                         ABDOVF=0;
                                         RCIDL=0;
                                         SCKP=0;
                                         WUE=0;
                                         ABDEN=0;
                               
                                         SYNC=0;
                                         BRG16=0;
                                         SPBRG=51;
                                 //        TXSTA=0X24; //chuankou shineng
                                         TXSTA=0XA4;//内部震荡
                                         RCSTA=0X90;//lianxu
                                         RCIE=1;
                                 //        TXIE=1;
                                         GIE=1;
                                         PEIE=1;       
                                //        RCREG=0;  
                }
               
                               

void interrupt usart()
                                {
                                        if(RCIF==1)
                                                {
                                                RCIF=0;
                                                recdata=RCREG;
                                               
                                               TXREG=recdata;
                                  
                                                }
                               
                               
                                }


void main ()
                        {
                                init();

                                  while(1)
                                          {
                                
                                          switch(recdata)
                                                          {
                                                                  case 0X01:PORTA=0X01;break;
                                                                  case 0X02:PORTA=0X02;break;
                                                                  case 0X03:PORTA=0X04;break;
                                                                  case 0X04:PORTA=0X08;break;
                                                                  case 0X05:PORTA=0X10;break;
                                                                  case 0X06:PORTA=0X20;break;
                                                         
                                                          }
                                 
                                                 
                                                          delay();
                                                 
                         
                                          }
                       
                        }
                       

        接收,使用proteus仿真,串口助手发送数据,接收和响应 都正常,。 但是串口助手收不到回发的数据。 从寄存器里看TXREG已经赋值了的                       

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