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 跳转至页
回复
打赏帖 | |
---|---|
宏定义和const关键字定义被打赏5分 | |
【功率监测与控制系统DIY活动成果贴】DIY功率计与LabVIEW数据采集被打赏100分 | |
【Freertos】任务管理被打赏10分 | |
分享博世的两种不同的喷射系统模式被打赏5分 | |
汽车+开路实验与短路实验被打赏10分 | |
多点式电子控制汽油喷射系统知识分享被打赏10分 | |
分享机械控制式汽油喷射系统被打赏5分 | |
【分享开发笔记,赚取电动螺丝刀】解决基于CH341制作无线模块时芯片发热问题被打赏31分 | |
【分享开发笔记,赚取电动螺丝刀】使用STM32F103ZE主控调试RS485通讯的避坑经验被打赏36分 | |
【分享开发笔记,赚取电动螺丝刀】移植xprintf模块被打赏27分 |