找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 408|回复: 0
收起左侧

PIC单片机EUSART通信

[复制链接]
ID:1074358 发表于 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 接收(输入)数据
    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);
    }
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表