当前位置: 代码迷 >> 驱动开发 >> UART串口系统初始化疑惑,该如何处理
  详细解决方案

UART串口系统初始化疑惑,该如何处理

热度:63   发布时间:2016-04-28 11:12:47.0
UART串口系统初始化疑惑
本人最近看一本《ARM9嵌入式技术及Linux高级实践教程》第五章   基本接口实验
的内容有些疑惑。

void   changeclockdivider(int   hdvin,   int   pdivn){
  //   hdvin,pdivn   FCLK:HCLK:PCLK
  //   0,0                   1:1:1
  //   0,1                   1:1:2
  //   1,0                   1:2:2
  //   1,1                   1:2:4
         
          rCLKDIVN   =   (hdivn < <1)|pdivn;
          if(hdivn)
                  MMU_SetAsyncBusMode();
          else
                  MMU_SetFastBusMode();
}

以上函数是配置APB总线时钟和AHB总线时钟,内部时钟PCLK作为UART的时钟。
我猜hdvin,pdvin分别是设置APB,AHB得。但后边的FCLK:HCLK:PCLK是什么意思呢?
这是基于ARM的


------解决方案--------------------
分频比
------解决方案--------------------
需要看芯片的技术手册
------解决方案--------------------
hdvin,pdvin用来设置FCLK:HCLK:PCLK三个频率的比例,
APB总线时钟频率称为PCLK
AHB总线时钟频率称为HCLK
“1,1 1:2:4”表示FCLK:HCLK:PCLK= 1: 1/2 : 1/4
比如HCLK=200MHz,则HCLK=100MHz,PCLK=50MHz
------解决方案--------------------
就是分频比