AVRWARE++开发笔记10:晶振频率的选择
2017-09-10 23:13
267 查看
这篇日志说一下有关晶振频率的选择问题。
先给出AVR串口波特率的计算公式:UBRR0 = (F_CPU / (16 * u32_BaudRate) - 1)
我们希望产生115200波特率,看选择不同晶振频率得到的结果。
1、7.3728M
UBRR0 = 7372800 / 1843200 - 1 = 3 取整后误差是0
2、8.0000M
UBRR0 = 8000000 / 1843200 - 1 = 3.34
取整后误差是0.34 / 3.34 = 10%
3、11.0592M
UBRR0 = 11059200 / 1843200 - 1 = 5
取整后误差是0
4、12.0000M
UBRR0 = 12000000 / 1843200 - 1 = 5.51
取整后误差是0.51 / 5.51 = 9%
5、14.7456M
UBRR0 = 14745600 / 1843200
- 1 = 7 取整后误差是0
由此可见晶振的频率取值非常重要,我现在板子上是12.0000M晶振,希望115200波特率,根本就调不出来。挖掘事情的真相,可以使人变得富有。
原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。
CSDN:http://blog.csdn.net/qingwufeiyang12346
先给出AVR串口波特率的计算公式:UBRR0 = (F_CPU / (16 * u32_BaudRate) - 1)
我们希望产生115200波特率,看选择不同晶振频率得到的结果。
1、7.3728M
UBRR0 = 7372800 / 1843200 - 1 = 3 取整后误差是0
2、8.0000M
UBRR0 = 8000000 / 1843200 - 1 = 3.34
取整后误差是0.34 / 3.34 = 10%
3、11.0592M
UBRR0 = 11059200 / 1843200 - 1 = 5
取整后误差是0
4、12.0000M
UBRR0 = 12000000 / 1843200 - 1 = 5.51
取整后误差是0.51 / 5.51 = 9%
5、14.7456M
UBRR0 = 14745600 / 1843200
- 1 = 7 取整后误差是0
由此可见晶振的频率取值非常重要,我现在板子上是12.0000M晶振,希望115200波特率,根本就调不出来。挖掘事情的真相,可以使人变得富有。
原创性文章,转载请注明出处 http://user.qzone.qq.com/2756567163。
CSDN:http://blog.csdn.net/qingwufeiyang12346
相关文章推荐
- IOS开发笔记10-Object-C中的对象
- SilverLight商业应用程序开发---学习笔记(10)使用数据源窗口创建DataGrid
- 张高兴的 Windows 10 IoT 开发笔记:无线收发芯片 nRF24L01
- 张高兴的 Windows 10 IoT 开发笔记:DHT11 温湿度传感器
- Android项目开发笔记之Material日历模块实现(支持滑动or直接选择年月)
- Objective-C 学习笔记 - part 10 - 选择器
- Android开发学习笔记(10):NDK安装手顺及应用
- 张高兴的 Windows 10 IoT 开发笔记:使用 ADS1115 读取模拟信号
- 【学习笔记javascript设计模式与开发实践(组合模式)----10】
- Android应用开发学习笔记之列表选择框
- 《C++ Concurrency in Action》笔记10 选择合适的lock粒度
- 张高兴的 Windows 10 IoT 开发笔记:红外温度传感器 MLX90614
- spring学习笔记10--Spring+jdbc组合开发(注解方式配置事务)
- php扩展开发笔记(10)自定义 libpng 库中的 IO 函数,将图片写入内存
- Android开发艺术探索笔记(10)- View的弹性滑动
- Android开发学习笔记一选择架构工具
- PHP学习笔记(10) phpcms模块开发,让swfupload为我所用
- iPhone开发笔记(10)用.net实现json序列化(服务器端)
- 张高兴的 Windows 10 IoT 开发笔记:使用 Lightning 中的软件 PWM 驱动 RGB LED
- 张高兴的 Windows 10 IoT 开发笔记:BMP180 气压传感器