登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
资料下载
搜索帖子!
NanoPC-T2
Core4418
NanoPC-T3 Plus
Core6818
NanoPi-M4B
NanoPC-T4
NanoPC-T6
NanoPi-NEO
NanoPi-NEO Core
NanoPi-NEO Air
NanoPi-M1 Plus
NanoPi-Duo2
NanoPi-NEO3
核心板:
Smart210
Tiny210
Smart4418
Smart6818
SOM-RK3399V2
CM3588(新品)
路由器:
R1
R1S
R2S
R2S Plus
R2C Plus
R4S
R5S
R5C
R6C
R6S
热门版块:
Linux技术交流区
友善之臂最新动态
站点服务
站务管理与公告
裸机程序和微型OS
友善之臂官方客服中心
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
友善之家
裸机程序和微型OS
高手们!!求解 rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 )!!!!!!
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
新 帖
主题 : 高手们!!求解 rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 )!!!!!!
复制链接
|
浏览器收藏
|
打印
liuhui8989
想要飞得更高就要忘掉地平线!
级别: 新手上路
作者资料
发送短消息
加为好友
QQ联系
UID:
42704
精华:
0
发帖:
6
金钱:
35 两
威望:
7 点
贡献值:
0 点
综合积分:
12 分
注册时间:
2011-04-10
最后登录:
2011-05-21
楼主
发表于: 2011-05-17 22:06
只看楼主
|
小
中
大
高手们!!求解 rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 )!!!!!!
求解 rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 )!!!!!!
求解 rUBRDIV0=( (int)(pclk/16./baud+0.5) -1 );为什么这样设置????手册上的公式是UBRDIVn=(int)(UART clock/(buad rete×16))-1;望大家指点下的!怎么还出现了“16./”的,而且多了个“0.5”???????求解!!!!!!!!!!注:pclk=PCLK;
想要飞的更高就要忘掉地平线!
顶端
回复
引用
分享
venkee.com
级别: 侠客
作者资料
发送短消息
加为好友
UID:
39247
精华:
2
发帖:
51
金钱:
355 两
威望:
71 点
贡献值:
2 点
综合积分:
142 分
注册时间:
2011-03-07
最后登录:
2015-05-31
1楼
发表于: 2011-05-20 22:07
只看该作者
|
小
中
大
默认的pclk是66mhz,可以计算到rUBRDIV0 = 35,楼主直接赋值就可以了
顶端
回复
引用
分享
mtm2000
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
48417
精华:
0
发帖:
16
金钱:
80 两
威望:
16 点
贡献值:
0 点
综合积分:
32 分
注册时间:
2011-05-31
最后登录:
2015-09-06
2楼
发表于: 2011-06-04 15:55
只看该作者
|
小
中
大
+0.5 就是4舍5入 的意思
顶端
回复
引用
分享
heyuanjie87
以专业精神对待业余爱好
级别: 侠客
作者资料
发送短消息
加为好友
QQ联系
UID:
43681
精华:
3
发帖:
109
金钱:
695 两
威望:
139 点
贡献值:
3 点
综合积分:
278 分
注册时间:
2011-04-19
最后登录:
2015-10-15
3楼
发表于: 2011-06-05 02:51
只看该作者
|
小
中
大
这样可以四舍五入,比如算出来为15.9这时取整后为15,而显然这种情况取16更好加0.5后等于16.4取整后就是16了
顶端
回复
引用
分享
张义
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
140695
精华:
0
发帖:
3
金钱:
15 两
威望:
3 点
贡献值:
0 点
综合积分:
6 分
注册时间:
2019-01-04
最后登录:
2019-07-04
4楼
发表于: 2019-06-17 16:43
只看该作者
|
小
中
大
设置波特率除数因子UBRDIV0。公式:UBRDIVn = (int)((Uart Clock)/(baud)/16) -1; Uart Clock:UART时钟频率。 baud:波特率。一般程序中公式将演变成:rUBRDIV0=(
(int)(pclk/16./baud+0.5) -1 );./ 为点除,因为pclk/16后为整数,所以点除得到float。+0.5 则是为强转时能够取到整数,因为c语言中强转是直接舍弃小数部分,而该公式要求四舍五入。
如:baud为115200bps 且UART时钟频率为40MHz。
UBRDIVn = (int)(pclk/16./baud+0.5) -1
= (int)22.2-1
= 21
---------------------
作者:庾志辉
来源:CSDN
原文:
https://blog.csdn.net/yuzhihui_no1/article/details/38458097
版权声明:本文为博主原创文章,转载请附上博文链接!
顶端
回复
引用
分享
上一主题
下一主题
友善之家
裸机程序和微型OS
http://www.aiothome.net
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问