打印

定时器A模拟串口困惑

[复制链接]
903|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
juventus9554|  楼主 | 2015-3-26 20:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定时器A模拟串口发送时,DEMO里有这么一句:
      if (RXTXData & 0x01)                  //判断最低位是否为1
      CCTL0 &= ~ OUTMOD2;                   // TX Mark
      else CCTL0 |=  OUTMOD2;               // TX Space
      RXTXData = RXTXData >> 1;             //将字节数据向右移一位
      BitCnt --;                            //位计数器减1

请问CCTL0 &= ~ OUTMOD2; 和CCTL0 |=  OUTMOD2;   是什么意思?
按照我的理解应该是:
      if (RXTXData & 0x01)                  //判断最低位是否为1
      CCTL0 |= OUT;                  
      else CCTL0 |= OUT;               
      RXTXData = RXTXData >> 1;       //将字节数据向右移一位
      BitCnt --;                            //位计数器减1
但改过之后,却不能正常收发数据

相关帖子

沙发
ccw1986| | 2015-3-27 08:27 | 只看该作者
不是太懂,帮你顶了

使用特权

评论回复
板凳
dirtwillfly| | 2015-3-29 22:34 | 只看该作者
OUTMODx是定时器A比较模块的输出模式位,OUTMOD2是Toggle/Reset模式。

使用特权

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

本版积分规则

900

主题

12190

帖子

3

粉丝