发送中断能进去,但是串口助手收不到数据

//PC串口助手发送一个字节,单片机回传数据

#include "p24HJ128GP506.h"

void Delay_xmS(unsigned int i)                  //延时程序
{
        unsigned int j;
        for(;i>0;i--)
        {
                Nop();
                for(j=0;j<255;j++)
                {
                        Nop();
                        ClrWdt();
                }
        }        
}

void UART2_Init(void)
{
        U2MODEbits.STSEL = 0;            // 1个停止位
        U2MODEbits.PDSEL = 0;            // N , 8, 1
        U2MODEbits.ABAUD = 0;            // 自动波特率禁止
        U2MODEbits.RTSMD = 1;            // 引脚处于单工模式
        
//        U2MODE.BRGH=0;
        
        U2BRG=((5000000/16)/9600)-1;         //设置波特率
                           

        U2STAbits.UTXISEL1 = 1;          // 发送一个字符后中断
        U2STAbits.UTXISEL0 = 0;
                                                         
        U2STAbits.URXISEL1 = 0;          // 接收一个字符后中断
        U2STAbits.URXISEL0 = 0;
        
        IEC1bits.U2RXIE = 1;             // 允许接收中断
        IEC1bits.U2TXIE = 1;             // 允许发送中断
        
        U2MODEbits.UARTEN = 1;           // 允许发送
        U2STAbits.UTXEN   = 1;           // 使能串口2
}

void __attribute__((__interrupt__,no_auto_psv))_U2RXInterrupt(void)
{ unsigned int tmp;
        tmp        = U2RXREG;               // 发送所接收到的数据
        Delay_xmS(1);
        U2TXREG=tmp; 
        IFS1bits.U2RXIF = 0;
}        

void __attribute__((__interrupt__,no_auto_psv))_U2TXInterrupt(void)
{
        IFS1bits.U2TXIF = 0;
}

int main(void)
{
        AD1PCFGL = 0xffff;            //所有引脚为数字I/O
//        TRISB = 0xFFFF;               //设置B端口为输入
        TRISG = 0;                    //设置G端口为输出
        TRISD = 0x0000;               //设置D端口为输出

        

        TRISFbits.TRISF5 = 0; //配置 u2tx 方向为输出
        TRISFbits.TRISF4 = 1; //配置 u2Rx 方向为输入

        UART2_Init();

        while(1);
        
}

请大神帮忙看一下程序!

一见钟情 发表于10-21 10:51 浏览65535次
分享到:

已有1条评论

  • 粽子糖果
    粽子糖果 10-21 13:47

    先试试简单的纯发送数据试试看能不能发出去

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

一见钟情
一见钟情(大校)
金币:1529个|学分:3659个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号