N76E003如果串口使用115200波特率需要微调HIRC到16.6MHz,使用默认16MHz波特率会有很大的误差。
共2条
1/1 1 跳转至页
N76E003串口使用115200波特率需要微调HIRC到16.6MHz,使用默认16MHz波特率会有很大的误差是为什么?
2楼
N76E003是一款8位单片机,其内部时钟源分为HIRC(高精度内部振荡器)和LIRC(低精度内部振荡器)两种。默认情况下,N76E003的系统时钟使用的是HIRC,频率为16MHz;而串口通信的波特率需要根据系统时钟进行设定。
串口通信波特率的设定使用定时器进行计数,常见的设定方法是使用波特率发生器,该发生器的输入时钟来自于系统时钟。当系统时钟频率和波特率发生器的分频系数设定不准确时,就会导致实际波特率与设定的波特率存在误差。
在N76E003中,使用115200波特率进行串口通信时,根据公式:
实际波特率 = 时钟频率 / (16 * (256 - 波特率发生器分频系数))
当时钟频率为16MHz时,波特率计算为:
实际波特率 = 16000000 / (16 * (256 - 波特率发生器分频系数))
由于波特率发生器分频系数是整数,只有256种可能的取值,所以实际波特率的可能值有限。而115200波特率在16MHz时钟频率下,无法找到合适的分频系数来得到准确的波特率,因此会导致较大的误差。
为了解决这个问题,可以微调HIRC的频率到16.6MHz,这样就可以在115200波特率下得到更接近准确值的实际波特率。这个微调可以通过调整HIRC的电容值或者使用外部晶振来实现。
需要注意的是,在使用外部晶振时,还需要在代码中将系统时钟源设置为晶振源,并设置晶振的频率。
综上所述,N76E003如果使用115200波特率,需要微调HIRC到16.6MHz,因为使用默认的16MHz时钟频率会导致较大的误差。
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 给28BYJ-48三自由度机械臂加一个网页控制台被打赏¥32元 | |
| 用28BYJ-48电机从零搭一台三自由度机械臂被打赏¥33元 | |
| 【英飞凌开发经验】ModusToolbox配置EdgeTalk外设被打赏¥27元 | |
| 基于BQ76952PFBR的BMS保护板热插拔损坏的原因和处理措施被打赏¥32元 | |
| 三分钟快速上手搭建nRF Connect SDK开发环境(VSCode)被打赏¥25元 | |
| 告别手动建模:我让AI用FreeCAD画了个开发板外壳被打赏¥30元 | |
| 【瑞萨RA8D1测评】总结收官——从IMU动作识别到LVGL桌宠被打赏¥33元 | |
| 【瑞萨BLE/WIFI模块测评】MPU6050双链路对比被打赏¥30元 | |
| 【瑞萨BLE/WIFI模块测评】DA14531被打赏¥28元 | |
| 【瑞萨BLE/WI-FI模块测评】DA16200被打赏¥28元 | |
我要赚赏金
