R5F100FE的UART

来源:互联网 发布:rxjs 多个网络请求 编辑:程序博客网 时间:2024/06/05 12:03

前几天在调试100FE的时候,碰到一件怪的事情,当UART0和UART1配置为9600时候,都正常,当UART0配置为115200时候,UART0不正常。

由此我想到肯定当配置UART1的时候,把UART0的寄存器给改变了。首先想到的是驱动里面,UART1的某个寄存器忘记修改名字了(复制UART0的驱动,经常忘记),

但是看了一遍,并没有。于是我怀疑是不是波特率计算有问题,于是把其它UART全部关闭,只保留UART0,然后配置为115200,结果正常。这个时候,想不通了,于是

全手册。首先看到这个:


UART0和UART1用的同一个单元,继续往下看:


通道可以选择时钟,再往下看:


好了,看看驱动里面怎么初始化的:


看见没有,选的时钟,都是一样的,可是我把UART1的时钟修改,还是不行,继续看底层驱动:


根据前面得寄存器说明,可知,这里把其它时钟的分频比也修改了,因此修改为:


这次在调试,没有问题。开始驱动写成那个样子,是我没有理解他的时钟那章说明,才导致后来的错误。

不过总算是解决了。。。。。。。。。。

原创粉丝点击