找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1008|回復(fù): 0
收起左側(cè)

PIC單片機(jī)EUSART通信

[復(fù)制鏈接]
ID:1074358 發(fā)表于 2023-6-6 13:33 | 顯示全部樓層 |閱讀模式
程序如下:

#include "EUSART.h"
#include "Delay.h"

void Eusart_Init()
{
    /*端口配置*/
    RXDTSEL = 1;            //置1則RC5上具有 RX/DT 功能
    TXCKSEL = 1;            //置1則RC4上具有 TX/CK 功能   
    /*將TX和RX端口配置為輸入模式(輸出模式的串口會顯示亂碼)*/
    TRISC5 = 1;             //RC4 RX 接收(輸入)數(shù)據(jù)
    TRISC4 = 1;             //RC5 TX 輸入數(shù)據(jù)

        ANSELC = 0;             //RC全數(shù)字

    /*波特率配置*/
    SYNC  = 0;              //置0為異步模式
    BRG16 = 1;              //置1為16位波特率發(fā)生器位,置0為8位波特率發(fā)生器位
    BRGH  = 1;              //異步模式高速狀態(tài)
    /*Baud rate 115200*/
    SPBRGH = 0x00;         
    SPBRGL = 0x44;      

    /*串口發(fā)送和接受配置*/
    //配置串口發(fā)送
    TXEN = 1;               //使能發(fā)送
    SCKP = 0;               //置0為將同相數(shù)據(jù)發(fā)送到 TX/CK 引腳
    TX9  = 0;               //8位數(shù)據(jù)發(fā)送
    //配置串口接收
    SPEN = 1;               //使能串口(將 RX/DT 和 TX/CK 引腳配置為串口引腳)
    RX9  = 0;
    CREN = 1;               //使能接收器
    //配置接受中斷  
    GIE  = 1;
    PEIE = 1;
    RCIE = 1;
}

void Eusart_TXByte(uchar Data)
{
    TXREG = Data;
    while(!TRMT);
}

void Eusart_TXBuffer(uchar *str)
{
    while(*str != '\0')
    {
        Eusart_TXByte(*str);
        str++;
    }
}        

void interrupt ISR()
{
    if(RCIE && RCIF)
    {
        TXREG = RCREG;
        while(!TRMT);
    }
}


回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表