天嵌 ARM开发社区

 找回密码
 注册
查看: 2774|回复: 2

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

[复制链接]
无人地铁 发表于 2012-2-13 23:28:16 | 显示全部楼层 |阅读模式
    我逛论坛后,发现这句很多人在问,我看了同样有这样的疑问,最后找到了解释!感觉功力深厚的程序员太强了!!
分析如下:
      一经典:首先要知道 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 | 显示全部楼层
顶一个先吧











您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-18 22:11 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表