打印

帮我看看 PIC24FJ32GA004的UART使用有什么遗漏的!!!谢谢

[复制链接]
2140|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jinjian75|  楼主 | 2008-9-9 09:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用双UART口,可是却不能发送!
与UART口相关的代码如下:

#include "p24FJ32GA004.h"
#define _P24FJ32GA004

//使用通讯管脚
//URT1RE ->pin1 ->RP9
//URT1RX ->pin2 ->RP22
//URT1TX ->pin3 ->RP23

//URT2RE ->pin9 ->RP11
//URT2RX ->pin10 ->RP12
//URT2TX ->pin11 ->RP13

void initialization()
    {

    RPINR18 = 22;
    RPINR19 = 12;
    RPOR6 = 0x0500;    // UART2 发送 映射到RP13
    RPOR11 = 0x0300;    // UART1 发送 映射到RP23

    AD1PCFG = 0xFFFF;

    U1BRG = 38;    // Fcy=12MHz, 19200bps
    U1MODE = 0;
    U1STA = 0;
    
    U1MODEbits.UARTEN = 1;
    U1STAbits.UTXEN = 1;
    IEC0bits.U1RXIE = 1;
    IEC0bits.U1TXIE = 1;
    //IPC2bits.U1RXIP = 0;
    //IPC2bits.U1TXIP = 0;
    _U1TXIP = 0;

    U2BRG = 38;    // Fcy=12MHz, 19200bps
    U2MODE = 0;
    U2STA = 0;
    
    U2MODEbits.UARTEN = 1;
    U2STAbits.UTXEN = 1;
    IEC1bits.U2RXIE = 1;
    IEC1bits.U2TXIE = 1;
    //IPC2bits.U1RXIP = 0;
    //IPC2bits.U1TXIP = 0;
    _U2TXIP = 0;

    }

void __attribute__((__interrupt__,no_auto_psv)) _U1TXInterrupt(void)
    {
    //************************************ /
    //UART1TX Uart 1 发送器
    //*********************************** /
    if(_U1TXIF)
    //if(IFS0bits.U1TXIF)
        {
        _U1TXIF = 0;
        U1TXREG = 0XAA;    //测试
        }
    }

void __attribute__((__interrupt__,no_auto_psv)) _U2TXInterrupt(void)
    {
    //************************************ /
    //UART2TX Uart 2 发送器
    //************************************ /
    if(_U2TXIF)
        {
        _U2TXIF = 0;
        U2TXREG = 0xaa;    // 测试
        }
    }
沙发
dalfer| | 2008-9-12 15:38 | 只看该作者

USART

你可能要在配置管脚之前对系统的ADCON寄存器全部置1,这样管脚信号才为数字的I/O!

使用特权

评论回复
板凳
systemchip| | 2008-9-13 17:54 | 只看该作者

:

初始化中对PPS相关寄存器的初始化完全不正确,当然不能正常工作。

使用特权

评论回复
地板
hotpower| | 2008-9-14 10:55 | 只看该作者

~~~

使用特权

评论回复
5
systemchip| | 2008-9-14 22:12 | 只看该作者

而且中断优先级设为“0”,那就别想进中断了。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

23

帖子

0

粉丝