打印

PIC16F877A串口测试问题

[复制链接]
1599|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 goldtiny 于 2013-7-7 19:30 编辑

大神们 我最近在学习PIC单片机 使用的是PIC16F877A 外挂20M的晶振 用串口调试助手做串口测试的时候会出现数据丢失的现象。单个发送的时候是这样的


发送第5的时候才收到

连续发送的时候是

会有很多的丢失 请问是什么情况 我的程序是这样的 请大神帮忙指导一下

#include <pic.h>             //包含单片机内部资源预定义
__CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);//对熔丝位进行设置      
//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,20M晶体HS振荡
void main()
{
          SYNC=0;              //选择异步通信模式
    BRGH=1;              //选择高速波特率发生模式
    SPBRG=129;               //设置波特率为9600bps,20M
    SPEN=1;         //串行通信端口打开,模块连接引脚TX,RX
    TRISC7=1;         //RX引脚设置为输入
    TRISC6=0;         //TX引脚设置为输出
    TXEN=1;         //允许发送数据
    CREN=1;         //允许接收数据
    GIE=1;          //总中断允许
    PEIE=1;         //外围功能模块中断允许
    RCIE=1;         //串口接收中断允许
    while(1)                    //等待中断
   {;}
  }
//--------------------------------------------
//中断函数
void interrupt usart(void)
  {

        
        
  if(RCIE&&RCIF)            //判断是否为串口接收中断
    {
      while(!TRMT);
     TXREG=RCREG;           //把接收到的数据发送回去
     }
   }


沙发
guitarliukang| | 2014-3-29 20:45 | 只看该作者
我外挂4M晶振的串口通信。能接收到数据,但是和预期接收到的数据不一样。请问你的问题解决了没?

使用特权

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

本版积分规则

6

主题

42

帖子

0

粉丝