中易网

USARTx->DR = (Data & (uint16_t)0x01FF);

答案:1  悬赏:50  
解决时间 2021-01-12 00:45
  • 提问者网友:欲劫无渡
  • 2021-01-11 06:29
USARTx->DR = (Data & (uint16_t)0x01FF);
最佳答案
  • 二级知识专家网友:西岸风
  • 2021-01-11 07:05
STM32中DR寄存器只有低9位(8:0)有效,其余高位是保留的。所以在进行寄存器赋值时,为了保证正确性和将来的兼容性,只取Data的低9位数据。所以出现了USARTx->DR = (Data & (uint16_t)0x01FF);这样的语句,假设不小心Data高位有值也能保证寄存器正确赋值。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息