打印

请教PIC873A串口接收问题

[复制链接]
1958|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
seacore_2008|  楼主 | 2013-6-5 23:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用串口助手发送1234567890,回显数据比较乱22222222610,请阁位前辈指点一下,谢谢!程序如下;
//接收采用中断实现
#include <pic.h>
unsigned char error=0x00;  //错误数据帧,丢弃
bit Q=0;                   //一次数据帧接收完成标志位
unsigned char message[10]; //数据信息缓存区
unsigned char j=0x00;      //数据信息的长度

void interrupt isr(void)   //接收中断处理
{
    if(RCIF&&RCIE)
    {
        if(FERR)//监测是否有帧错误
        {
            error=RCREG;   
        }
        if(OERR)
        {
            CREN=0 ;
            CREN=1 ;  //接收模块被复位重置,OERR清零
        }

        message[j]=RCREG;  //保存每一次接收到的数据
        j++;
        if(j>1)
        {
                   Q=1;       //10个数据字节接收完成标志
                   j=0;
        }
    }
}
void usart_init()           //串口初始化
{
    INTCON=0 ;    // 关闭所有的中断
    TRISC6=1 ;
    TRISC7=1 ;
    SPBRG=25;//波特率9600,6M时钟
    BRGH=1;  //高速波特率
    SYNC=0;
    SPEN=1;  //异步串口工作方式
    TXEN=1;  //USART工作于发送器方式
      
    TXIE=0;  //发送不需要中断处理
    RCIE=1;  //接收需要中断处理
    CREN=1;  //激活接收器
    PEIE = 1;
    GIE = 1;
}
void send_char(unsigned char byte)  //发送一个字节的数据
{
    TXREG = byte;
    while(!TXIF);

      
}
void main()          //将上位机发送的数据通过串口显示
{
    usart_init();

    while(1)
    {
       if(Q==1)
       {send_char(j);
            Q=0;
            for(j=0;j<10;j++)
               send_char(message[j]);            
        }
    }
}


沙发
kvdong| | 2013-6-6 08:13 | 只看该作者
   j++;
        if(j>1)    //这里明显跟你的想法不一致吧   
    {
                   Q=1;       //10个数据字节接收完成标志
                   j=0;
        }

使用特权

评论回复
板凳
seacore_2008|  楼主 | 2013-6-6 22:58 | 只看该作者
多谢楼上指点,实际上
j++;
         if(j>10)    //发帖时不小心搞掉一个0,
    {
                    Q=1;       //10个数据字节接收完成标志
                    j=0;
         }

使用特权

评论回复
地板
yklstudent| | 2013-6-7 18:49 | 只看该作者
我就感到好奇了 你不是复制粘贴的?
好笑的说是发帖漏了 不理解

使用特权

评论回复
5
seacore_2008|  楼主 | 2013-6-8 12:10 | 只看该作者
搞定了,少了一条J=0;

使用特权

评论回复
6
cmc1205| | 2014-3-6 20:36 | 只看该作者
谢谢楼主~

使用特权

评论回复
7
兰天白云| | 2014-3-7 16:06 | 只看该作者
j没初始化?

使用特权

评论回复
8
yewuyi| | 2014-3-8 12:22 | 只看该作者
这种代码编辑错误也纠结得需要上来提问?

拉出去鞭笞100下。

使用特权

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

本版积分规则

7

主题

31

帖子

0

粉丝