[PIC®/AVR®/dsPIC®产品] PIC单片机UART自动波特率程序

[复制链接]
 楼主| 忘记梦 发表于 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 之后发送数据,可是没有收到任何东西
 楼主| 忘记梦 发表于 2014-6-9 11:46 | 显示全部楼层
问题已解决,上边程序确实可以适应自动波特率,去适应对方,首先发送55就可以间隔大于10MS即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

22

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

4

主题

22

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部