本帖最后由 linyueqiang 于 2011-7-26 12:14 编辑
#include <pic18.h>
#include <stdio.h>
/* Serial initialization */
unsigned char DATA;
unsigned char DATA_REVEIVE=0;
void delay ()
{
unsigned char i;
for(i=0;i<250;i++);
}
void init_comms(void)
{
TXSTA1 = 0x04;
TXSTA2=0X00;
RCSTA1 = 0x80;
RCSTA2 = 0X00;
SPBRG1=0X67; /*16M晶振,高速,波特率为9600*/
BAUDCON1= 0X42;
PMD0=0Xfd;
PIR1 = 0;
PIE1 = PIE1 | 0x20;
RCIP=0;
TXSTA1 = TXSTA1 | 0x20;
RCSTA1 = RCSTA1 | 0x10;
TRISC7 = 1;
TRISC6 = 0;
PEIE=1;
GIE=1;
}
void interrupt uart()
{
/* retrieve one byte */
if((RC1IF=0)&&(RC1IE=1))
{
RC1IE=0;
DATA=RCREG1;
TXREG1=DATA;
delay();
}
}
void main()
{
INTCON=0x00; /* 关总中断 */
ADCON1=0X07; /* 设置数字输入输出口,不用作模拟口 */
PIE1=0; /* PIE1 的中断不使能 */
PIE2=0; /* PIE2 的中断不使能 */
PIE3=0; /* PIE3 的中断不使能 */
init_comms();
while(1)
{
;
}
}
把接收数据立即发送出去,通过串口调试助手查看数据,但是单片机一直没有接收到数据,接收寄存器的数值显示00,谁能帮我看看。本人新手,欢迎大家一起讨论。单片机用的是PIC18F26K80 |