LPC21XX在keil4中UART串口波特率设置问题

Hello ARM!

昨天在keil4编写了LPC2138的串口程序,但是发现按照LPC2138用户指南来设置波特率后,实际波特率与理论波特率不同,导致在Proteus中仿真出现乱码。无论我怎么设置,都无法解决。曾一度怀疑LPC2138芯片资料有问题。

但是最终在查看了启动代码Startup.s文件后,才恍然大悟,原来Startup.s在初始化过程中把锁相环PLL给打开了,并且把M值设为5,这样的话,系统时钟为晶振频率的5倍,即cclk=5*Fosc.在程序把系统时钟设置成晶振频率的5倍频后,理论值和实际值相同,问题得到解决。

然后我按照原来的程序,把Startup.s文件中有关PLL设置的代码注释掉,理论值同样变得和实际值相同。

所以,今后在遇到程序执行结果与预想的结果不同的时候,千万不要轻易的怀疑官方文档或者芯片有问题,要从自己的方面仔细思考与查找问题,这样才能事半功倍。

8 Comments

  1. 沫小熙iBlog

    技术问题,不懂?

    Reply

  2. 麦田一根葱

    这个好高端没接触过

    Reply

    • 一念花开

      @麦田一根葱 : 这是ARM方面的东西,也就是嵌入式方面的,现在手机,平板好多都是ARM内核,不过现在intel的CPU也进军移动设备了,我现在是初学。

      Reply

  3. 小五

    这图片怎么做出来的?

    Reply

  4. SingleX

    这图好炫呀。虽然我不懂这是神马,但是感觉很霸气的样子

    Reply

  5. Dr.fuhu

    嵌入式好玩,不是说4有什么bug么,我一直用的3

    Reply

    • 一念花开

      @Dr.fuhu : 嵌入式现在也是在自学。倒是没听过keil4有什么bug,不管有没有,只要不影响我使用就行了。

      Reply

Leave a Reply

*