无人地铁 发表于 2012-2-13 23:28:16

经典!!!解释rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 );

    我逛论坛后,发现这句很多人在问,我看了同样有这样的疑问,最后找到了解释!感觉功力深厚的程序员太强了!!
分析如下:
      一经典:首先要知道 rUBRDIV0这个是要取一个整数的!这个的值请大家找手册,就知道如何设置了!但是与手册的公式对不上号!主要就是有两个地方,一个点除即. / ,为什么要是点除,因为PCLK、16不一定除得整数,有可能是小数,所以要点除得以成float形!
   二经典: rUBRDIV0这个手册上不是说要是取靠进整数的那个数吗?比如22.7,那么取23,所以就有除完之后再加0.5这个说法了,22.7+0.5=23.2,取(int)之后,就成了23啦!!!
   希望对大家有所帮助!!

无人地铁 发表于 2012-2-13 23:29:02

沙发:funk:

小七战士 发表于 2012-2-14 15:36:14

顶一个先吧











http://www.apple88.cn/hello.png
页: [1]
查看完整版本: 经典!!!解释rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 );