打印

求助PIC24FJ256GA106 的串口接收问题

[复制链接]
2137|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
glj77|  楼主 | 2009-4-29 19:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在用这个芯片作串口通信时,发送正常,但接收不正常,不知是何原因,代码如下: 


#include <p24fxxxx.h> 

_CONFIG1(JTAGEN_OFF & GCP_OFF & GWRP_OFF & COE_OFF & FWDTEN_OFF & ICS_PGx3 & BKBUG_ON) 
_CONFIG2(FCKSM_CSDCMD & OSCIOFNC_OFF & POSCMOD_HS & FNOSC_PRIPLL & IOL1WAY_OFF & FNOSC_PRIPLL) 


void UART1_put(unsigned char dat) 

    U1TXREG = dat; 
    while (!U1STAbits.TRMT); 
}   



int main(void) 

    unsigned char dat = 0xAA; 
   
    // Unlock Registers  
    asm volatile ( " MOV #OSCCON, w1   "  
                    " MOV #0x46, w2     "  
                    " MOV #0x57, w3     "  
                    " MOV.b  w2, [w1]   "  
                    " MOV.b  w3, [w1]   "  
                    " BCLR OSCCON, #6    " );  


    RPOR4bits.RP9R = 3;                    //RP9 设置成 U1TXD  外设编号=3 
    RPINR18bits.U1RXR = 8;                 //RP8 设置成 U1RXD 

    // Lock Registers  
    asm volatile ( " MOV #OSCCON, w1   "  
                    " MOV #0x46, w2     "  
                    " MOV #0x57, w3     "  
                    " MOV.b  w2, [w1]   "  
                    " MOV.b  w3, [w1]   "  
                    " BSET OSCCON, #6    " ); 


    TRISBbits.TRISB8 = 1;     //输入 
    TRISBbits.TRISB9 = 0;     //输出 


    U1BRG  =  ( 16000000 + 8ul * 9600 ) / 16 / 9600 - 1; 
    U1MODEbits.UARTEN = 1; 
    U1STAbits.UTXEN = 1; 

    //UART1_put(0x55);         //发送测试是OK的 
   
    while(1) 
    { 
        if(_U1RXIF)            // 如果接收到数据 
        { 
            _U1RXIF = 0; 
            dat = U1RXREG; 
            UART1_put(dat);    //问题在这里,一直会发送 0 
        } 
    } 


    程序的本意是收1个字符,然后发送回去 
    发送是没有问题的,但无法正确接收 
    怀疑串口的IO配置有问题,但看不出有什么问题,硬件电路绝对OK,可以排除,郁闷了好久了,大家有没有碰到过这样的情况? 



    还有2个线索,1是 那两段解锁和加锁的汇编代码,不管有或没有,串口的发送都是正常的,难道不需要解锁? 
             2是设置成环回模式时,可以收到自己发出的字符 
现在主要是设置IO重定义的那2句是不是有问题,但看数据手册上的代码也是这样操作的 

    RPOR4bits.RP9R = 3;                    //RP9 设置成 U1TXD  外设编号=3  
    RPINR18bits.U1RXR = 8;                 //RP8 设置成 U1RXD
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

19

帖子

1

粉丝