打印

PIC18系列串口接收问题

[复制链接]
2801|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linyueqiang|  楼主 | 2011-7-26 12:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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

相关帖子

沙发
老鱼探戈| | 2011-7-26 12:51 | 只看该作者
应该去老叶的地盘发帖。。。
等老叶过来帮你看看。

使用特权

评论回复
板凳
linyueqiang|  楼主 | 2011-7-26 19:57 | 只看该作者
问题已经解决了,原来是硬件上出错了

使用特权

评论回复
地板
linyueqiang|  楼主 | 2011-7-26 19:59 | 只看该作者
接收一个字节没有问题,接收多个字节就会出错了,该如何解决,请教高手

使用特权

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

本版积分规则

7

主题

32

帖子

0

粉丝