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

[复制链接]
4131|2
 楼主| 周咸菜 发表于 2007-4-17 19:27 | 显示全部楼层 |阅读模式
我写了个简单的UART&nbsp;和PC的RS232通信的程序,现在问题是PC给MCU发数据接收是正常的,可是MCU就是不能给PC发数据,用串口调试精灵,看不到结果!请大家帮帮我,我搞了几天了,没有搞定!<br /><br />#include&nbsp;&quot;p30f4013.h&quot;<br />#define&nbsp;FCY&nbsp;14745600<br />_FOSC(CSW_FSCM_OFF&nbsp;&&nbsp;XT_PLL8);//use&nbsp;a&nbsp;external&nbsp;crystal&nbsp;,the&nbsp;instruction&nbsp;cycle&nbsp;=1/(FOSC*PLL/4)<br />_FWDT(WDT_OFF);<br />_FBORPOR(PBOR_OFF&nbsp;&&nbsp;MCLR_EN);//disable&nbsp;power&nbsp;off&nbsp;pretect,enable&nbsp;MCLR<br />_FGS(CODE_PROT_OFF);//disable&nbsp;code&nbsp;pretect<br /><br />void&nbsp;ini232(void);<br />void&nbsp;__attribute__((__interrupt__))&nbsp;_U1RXInterrupt(void);&nbsp;/*Declare&nbsp;232&nbsp;interrupt&nbsp;ISRs*/<br /><br />unsigned&nbsp;char&nbsp;rxdata;<br /><br />int&nbsp;main&nbsp;(void)<br />{&nbsp;<br />unsigned&nbsp;char&nbsp;i;<br />ini232();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;Call&nbsp;function&nbsp;to&nbsp;initialize&nbsp;the&nbsp;232&nbsp;Interrupts&nbsp;*/<br />for(i=32;i!=0;i--);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;U1TXREG=0x66;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(U1STAbits.TRMT==0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;IFS0bits.U1TXIF=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />void&nbsp;ini232(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRISFbits.TRISF2&nbsp;&nbsp;&nbsp;&nbsp;=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRISFbits.TRISF3&nbsp;&nbsp;&nbsp;&nbsp;=0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U1BRG&nbsp;&nbsp;&nbsp;&nbsp;=95;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//9600&nbsp;baud&nbsp;rate<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IPC2bits.U1RXIP=7;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEC0bits.U1TXIE=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEC0bits.U1RXIE=1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U1MODE&nbsp;&nbsp;&nbsp;&nbsp;=0x8020;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U1STAbits.UTXEN&nbsp;&nbsp;&nbsp;&nbsp;=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />void&nbsp;__attribute__((__interrupt__))&nbsp;_U1RXInterrupt(void)<br />{<br />IFS0bits.U1RXIF&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;<br />rxdata=(char)U1RXREG;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />
systemchip 发表于 2007-4-17 22:13 | 显示全部楼层

:

while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;U1TXREG=0x66;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(IFS0bits.U1TXIF=0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;IFS0bits.U1TXIF=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| 周咸菜 发表于 2007-4-18 11:00 | 显示全部楼层

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

PCB上的DB9的12345被我反过来,成了54321了!<br />结果只有pin3是对的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

5

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部