打印
[PIC®/AVR®/dsPIC®产品]

pic16f1829串口接收求助,多谢

[复制链接]
3050|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
啊呀呀的在|  楼主 | 2014-7-11 13:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <pic.h>
#include <xc.h>
#pragma config FOSC = HS        // Oscillator Selection (HS Oscillator, High-speed crystal/resonator connected between OSC1 and OSC2 pins)
#pragma config WDTE = OFF
unsigned char word;
void get()
{
//    if(FERR == 1)//数据帧错误
//    {
//        SPEN = 0;
//        SPEN = 1;
//    }
//    if(OERR == 1)//溢出错误
//    {
//        CREN=0 ;
//        CREN=1 ;  //接收模块被复位重置,OERR清零
//    }
    if(PIR1bits.RCIF == 1)
    {
        word = RCREG;
        //while(RCIF);
    }
}
void main()
{
    ANSELC = 0X00;
    SYNC = 0;   //异步操作
    TX9 = 0;    //8位数据
    BRGH = 1;   //高波特率选择位:高速
    BRG16 = 1;  //使用16位波特率发生器
    SPBRG = 207;
    SPEN = 1;   //将RCSTA寄存器的SPEN位置1使能EUSART并自动将TX/CK I/O引脚配置为输出
    TXCKSEL = 1;  //rc4tx/ck功能
    RXDTSEL = 1;  //RC5上具有RX/DT功能
    CREN = 1;   //使能接收
    TXEN = 1;   //使能发送
    TXIE = 0;  //发送不需要中断处理
    RCIE = 0;  //接收bu需要中断处理
    TRISCbits.TRISC4 = 1;
    TRISCbits.TRISC5 = 1;
    while(1)
    {
        get();
    }
}
另一个单片机一直发送数据,这个是单片机pic16f1829的接收程序,怎么接收不到啊,哪里有错误吗?请各位大神帮助一下,多谢了
沙发
忘记梦| | 2014-7-11 16:25 | 只看该作者
全局中断 接收中断没开

使用特权

评论回复
板凳
忘记梦| | 2014-7-11 16:33 | 只看该作者
  IRCF1=1;
  IRCF2=1;
  IRCF0=1;
  SPBRG  = 25;    //波特率设为9600  
  TXSTA  = 0x24;  //使能发送  
  RCSTA  = 0x90;  //使能接收         
  RCIF   = 0;     //清零外部中断   
  GIE    = 1;     //开放全局中断  
  PEIE   = 1;     //使能外设中断   
  ANSEL = 0;
  ANSELH = 0;
  TRISB  = 0x20;  //将PORB RXD 设为输入口,TXD设为输出口  
  RCIE=1;         //使能接收中断  
  TXIE=1;         //使能发送中断


看看这个例程,就发现问题了

使用特权

评论回复
地板
yklstudent| | 2014-7-12 08:04 | 只看该作者
跟全局中断毛关系 人家查询接收的而已

使用特权

评论回复
5
lanmp| | 2014-7-12 09:28 | 只看该作者
被编译器优化掉了

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝