标题: PIC单片机EUSART通信 [打印本页]

作者: jianduo    时间: 2023-6-6 13:33
标题: PIC单片机EUSART通信
程序如下:

#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 接收(输入)数据
    TRISC4 = 1;             //RC5 TX 输入数据

        ANSELC = 0;             //RC全数字

    /*波特率配置*/
    SYNC  = 0;              //置0为异步模式
    BRG16 = 1;              //置1为16位波特率发生器位,置0为8位波特率发生器位
    BRGH  = 1;              //异步模式高速状态
    /*Baud rate 115200*/
    SPBRGH = 0x00;         
    SPBRGL = 0x44;      

    /*串口发送和接受配置*/
    //配置串口发送
    TXEN = 1;               //使能发送
    SCKP = 0;               //置0为将同相数据发送到 TX/CK 引脚
    TX9  = 0;               //8位数据发送
    //配置串口接收
    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);
    }
}







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1