登录
注册
一键加入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
热门版块:
友善之臂最新动态
NanoPi 玩家交流区
开发板实战手册及教程
二手交易区
U-boot技术交流区
开发板销售中心
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访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
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问