定时器A模拟串口困惑

[复制链接]
1105|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

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