在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > PIC16F877A串口發(fā)送字符串問題

            PIC16F877A串口發(fā)送字符串問題

            作者: 時間:2018-08-17 來源:網(wǎng)絡(luò) 收藏

            PIC16F877A串口發(fā)送,查詢方式,就為了調(diào)出這個費(fèi)了我一天時間,原來是串口芯片電壓問題,現(xiàn)總結(jié)如下:

            本文引用地址:http://www.biyoush.com/article/201808/387176.htm

            1、注意232串口芯片供電電壓,有5V和3.3V的

            2、注意TXD、RXD接線,單片機(jī)的TXD接232芯片的R2OUT,單片機(jī)的RXD接232芯片的T2IN

            3、注意ESP8266的UTXD接MCU的RX,URXD接MCU的TX

            4、注意ESP8266的UTXD接232的T2IN,URXD接232的R2OUT

            5、串口波特率設(shè)置成9600

            6、注意連接線的可靠性,如果用線連的話一定要檢查線和插座是否穩(wěn)定連接

            7、系統(tǒng)連線如下圖所示

            PIC16F877A串口發(fā)送 - allegro_tyc - allegro_tyc的博客

            //以下是串口發(fā)送程序

            #include

            #define uchar unsigned char

            #define uint unsigned int

            __CONFIG(0x3B32);

            void delay2ms(uint x)

            {

            uint a,b;

            for(a=x; a>0; a--)

            for(b=152; b>0; b--);

            }

            void UART_SendByte(unsigned char dat)

            {

            TXREG=dat;

            while(TRMT==0);

            }

            void serial_init()

            {

            TRISC=0xbf;//設(shè)置RX為輸入,TX為輸出

            TXSTA=0x24;

            RCSTA=0x80;

            SPBRG=0x33;//本人使用的是8MHz晶振,9600=8000000/(16*(X+1))->X=51->X=0x33

            GIE=1;

            PEIE=1;

            RCIE=1;

            }

            void main()

            {

            serial_init();

            while(1)

            {

            UART_SendByte(0x31);

            UART_SendByte(0x32);

            UART_SendByte(0x33);

            delay2ms(500);

            }

            }

            //以下是MCU發(fā)送AT命名給ESP8266的程序

            #include

            #define uchar unsigned char

            #define uint unsigned int

            #define LEDRD1

            __CONFIG(0x3B32);

            #define LED_OPEN() (LED=1)

            #define LED_CLOSE() (LED=0)

            #defineCPU_FOSC8000000

            #defineBAUD9600

            unsigned char* LYMS=AT+CWMODE=3r;

            unsigned char* SZLY=AT+CWSAP=ESP8277_CYT,1234567890,11,3r;

            unsigned char* RST=AT+RSTr;

            unsigned char* LCAP=AT+CWLAPr;

            unsigned char* SZDLJ=AT+CIPMUX=1r;

            unsigned char* KQFU=AT+CIPSERVER=1,5000r;

            unsigned char* FSSJ=AT+CIFSRr;

            void delay2ms(uint x)

            {

            uint a,b;

            for(a=x; a>0; a--)

            for(b=152; b>0; b--);

            }

            void sys_init()

            {

            TRISD=0x00;//設(shè)置PORTD口為輸出

            }

            void usart_init()

            {

            TRISC=0xbf;//設(shè)置RX為輸入,TX為輸出

            TXSTA=0x24;

            RCSTA=0x80;

            SPBRG=0x33;//本人使用的是8MHz晶振,9600=8000000/(16*(X+1))->X=51->X=0x33

            GIE=1;

            PEIE=1;

            RCIE=1;

            }

            void usart0_putchar(unsigned char data)

            {

            while (!TRMT);

            TXREG = data;

            }

            void print(unsigned char* p_string)

            {

            while (*p_string)

            {

            if (*p_string != 'r')

            {

            usart0_putchar(*p_string);

            }

            else

            {

            usart0_putchar('r');

            usart0_putchar('n');

            }

            p_string++;

            }

            }

            void send_command()

            {

            print(LYMS);delay2ms(500);delay2ms(500);

            print(SZLY);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(RST);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(LCAP);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(SZDLJ);delay2ms(500);delay2ms(500);

            print(KQFU);delay2ms(500);delay2ms(500);

            print(FSSJ);delay2ms(500);delay2ms(500);

            }

            void main()

            {

            sys_init();

            usart_init();

            send_command();

            while(1)

            {

            PORTD = 0xff;

            delay2ms(500);

            PORTD = 0x00;

            delay2ms(500);

            }

            }

            //以下是MCU發(fā)送AT命名給ESP8266的程序,并接收命令、解析并作出反應(yīng)

            #include

            #define uchar unsigned char

            #define uint unsigned int

            unsigned char RX_Buffer[32];

            unsigned char RX_CNT=0;

            #define LED1RD1

            #define LED2RD2

            #define LED3RD3

            __CONFIG(0x3B32);

            #define LED1_OPEN() (LED1=1)

            #define LED1_CLOSE() (LED1=0)

            #define LED2_OPEN() (LED2=1)

            #define LED2_CLOSE() (LED2=0)

            #define LED3_OPEN() (LED3=1)

            #define LED3_CLOSE() (LED3=0)

            #defineCPU_FOSC8000000

            #defineBAUD9600

            unsigned char* LYMS=AT+CWMODE=3r;

            unsigned char* SZLY=AT+CWSAP=ESP8277_TYC,1234567890,11,3r;

            unsigned char* RST=AT+RSTr;

            unsigned char* LCAP=AT+CWLAPr;

            unsigned char* SZDLJ=AT+CIPMUX=1r;

            unsigned char* KQFU=AT+CIPSERVER=1,5000r;

            unsigned char* FSSJ=AT+CIFSRr;

            void delay2ms(uint x)

            {

            uint a,b;

            for(a=x; a>0; a--)

            for(b=152; b>0; b--);

            }

            void sys_init()

            {

            TRISD=0x00;//設(shè)置PORTD口為輸出

            }

            void usart_init()

            {

            TRISC=0x80;//設(shè)置RX為輸入,TX為輸出

            TXSTA=0x24;

            RCSTA=0x90;

            SPBRG=0x33;//本人使用的是8MHz晶振,9600=8000000/(16*(X+1))->X=51->X=0x33

            RCIE=0x01;

            TXEN=0x01;

            TXIE=0x01;

            PEIE=0x01; //外部中斷使能

            GIE=1;//總中斷使能

            }

            void usart0_putchar(unsigned char data)

            {

            while (!TRMT);

            TXREG = data;

            }

            void print(unsigned char* p_string)

            {

            while (*p_string)

            {

            if (*p_string != 'r')

            {

            usart0_putchar(*p_string);

            }

            else

            {

            usart0_putchar('r');

            usart0_putchar('n');

            }

            p_string++;

            }

            }

            void send_command()

            {

            print(LYMS);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(SZLY);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(RST);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(LCAP);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(SZDLJ);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(KQFU);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            print(FSSJ);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);delay2ms(500);

            }

            void interrupt usart(void)

            {

            if(RCIERCIF)

            {

            //TXREG = RCREG;

            RX_Buffer[RX_CNT] = RCREG;

            if(RX_Buffer[0]==0x45)

            RX_CNT++;

            else

            RX_CNT=0;

            if(RX_CNT>=10)

            {

            if(RX_Buffer[0]==0x45RX_Buffer[1]==0x53RX_Buffer[2]==0x50)

            {

            if(RX_Buffer[4]==0x4CRX_Buffer[5]==0x45RX_Buffer[6]==0x44)

            {

            if(RX_Buffer[7]==0x31)

            {

            if(RX_Buffer[3]==0x4B)

            LED1_OPEN();

            if(RX_Buffer[3]==0x47)

            LED1_CLOSE();

            }

            }

            }

            RX_CNT=0;

            }

            }

            }

            void main()

            {

            sys_init();

            usart_init();

            send_command();

            LED1_OPEN();

            LED2_OPEN();

            LED3_OPEN();

            while(1);

            }



            關(guān)鍵詞:

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉