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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |