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

PIC单片机UART自动波特率程序

[复制链接]
3485|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
忘记梦|  楼主 | 2014-6-6 17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想做一个PIC18F87J60自动波特率的串口程序串口程序如下   没有见到想要的效果,测试时 先发送了55 过了几秒之后才发送的数据 可是依旧不能收到值,求指点一下
    RCSTA2bits.SPEN = 0;// disable uart commutation
    TXSTA2bits.SYNC = 0;    // asynchronous mode
    TXSTA2bits.BRGH = 1;    // high speed
     BAUDCON2bits.BRG16 = 1; // 16bits


    RCSTA2bits.CREN = 1;    // enable receive
    TXSTA2bits.TXEN = 1;    // tx enable

    // EUSART2 rx int enable
    IPR3bits.RC2IP = 1;             // high priority
    PIE3bits.RC2IE = 1;             // enable

    // EUSART2 tx int enable
    IPR3bits.TX2IP = 1;             // high priority
    PIE3bits.TX2IE = 0;             // disable

   // Enable Interrupts
    RCONbits.IPEN = 1;                // Enable interrupt priorities
    INTCONbits.GIEH = 1;
    INTCONbits.GIEL = 1;       
   
  //Define RX_IO TX_IO

      RCSTA2bits.SPEN = 0;// disable uart commutation
      
      BAUDCON2bies.WUE = 0;
      BAUDCON2bits.ABDEN =1;

//calculate baud rate
        TRISGbits.TRISG2 = 1;
        TRISGbits.TRISG1 = 0;
//enable uart
        RCSTA2bits.SPEN = 1;//Enable uart commutation
沙发
yewuyi| | 2014-6-9 09:22 | 只看该作者
不是发了特征码就结束了,如果这样的话,那也太EASY了。。。

1、如果你是让对方来适应你的波特率,你首先要确定对方是不是有波特率自适应代码
2、如果你是适应对方的波特率,则在接受到特征码后要进行自身的波特率调整,知道调整到和对方一致为止。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
忘记梦 + 1 赞一个!
板凳
yewuyi| | 2014-6-9 09:23 | 只看该作者
不是发了特征码就结束了,如果这样的话,那也太EASY了。。。

1、如果你是让对方来适应你的波特率,你首先要确定对方是不是有波特率自适应代码
2、如果你是适应对方的波特率,则在接受到特征码后要进行自身的波特率调整,知道调整到和对方一致为止。

使用特权

评论回复
地板
忘记梦|  楼主 | 2014-6-9 09:41 | 只看该作者
yewuyi 发表于 2014-6-9 09:22
不是发了特征码就结束了,如果这样的话,那也太EASY了。。。

1、如果你是让对方来适应你的波特率,你首先 ...

对方是用的串口助手,先发送的55 之后发送数据,可是没有收到任何东西

使用特权

评论回复
5
忘记梦|  楼主 | 2014-6-9 11:46 | 只看该作者
问题已解决,上边程序确实可以适应自动波特率,去适应对方,首先发送55就可以间隔大于10MS即可

使用特权

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

本版积分规则

4

主题

22

帖子

1

粉丝