打印

dspic30f4013 UART 问题很郁闷,请大家帮忙!谢谢!

[复制链接]
3387|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
周咸菜|  楼主 | 2007-4-17 19:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了个简单的UART 和PC的RS232通信的程序,现在问题是PC给MCU发数据接收是正常的,可是MCU就是不能给PC发数据,用串口调试精灵,看不到结果!请大家帮帮我,我搞了几天了,没有搞定!

#include "p30f4013.h"
#define FCY 14745600
_FOSC(CSW_FSCM_OFF & XT_PLL8);//use a external crystal ,the instruction cycle =1/(FOSC*PLL/4)
_FWDT(WDT_OFF);
_FBORPOR(PBOR_OFF & MCLR_EN);//disable power off pretect,enable MCLR
_FGS(CODE_PROT_OFF);//disable code pretect

void ini232(void);
void __attribute__((__interrupt__)) _U1RXInterrupt(void); /*Declare 232 interrupt ISRs*/

unsigned char rxdata;

int main (void)

unsigned char i;
ini232();                 /* Call function to initialize the 232 Interrupts */
for(i=32;i!=0;i--);        
while(1)
    {
    U1TXREG=0x66;
    while(U1STAbits.TRMT==0);     
    IFS0bits.U1TXIF=0;             
    }                   
}

void ini232(void)
{
        
        TRISFbits.TRISF2    =1;               
        TRISFbits.TRISF3    =0;

        U1BRG    =95;        //9600 baud rate

        IPC2bits.U1RXIP=7;
        IEC0bits.U1TXIE=0;
        IEC0bits.U1RXIE=1;

        U1MODE    =0x8020;
    
        U1STAbits.UTXEN    =1;
    
}

void __attribute__((__interrupt__)) _U1RXInterrupt(void)
{
IFS0bits.U1RXIF = 0;    
rxdata=(char)U1RXREG;
     
}
沙发
systemchip| | 2007-4-17 22:13 | 只看该作者

:

while(1)
    {
    U1TXREG=0x66;
    while(IFS0bits.U1TXIF=0);     
    IFS0bits.U1TXIF=0;             
    }    

使用特权

评论回复
板凳
周咸菜|  楼主 | 2007-4-18 11:00 | 只看该作者

谢谢,问题已经找到,是PCB问题!

PCB上的DB9的12345被我反过来,成了54321了!
结果只有pin3是对的!

使用特权

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

本版积分规则

2

主题

5

帖子

0

粉丝