调试载波通讯体系的时分遇到这样一个问题:两台设备分别为A何B,他们都运用了定时器2~4来进行通讯,A设备的PCLK1装备为HCLK,而B设备的PCLK1装备为1/2HCLK,通讯进程发现A,B两个设备偶然能通讯偶然不能通讯,表现出通讯部安稳。理论上应该彻底不能通讯才是,深入研究STM32F101C8T6的数据手册发现问题所在,截图如下:
图1 STM32功用框图
图2 STM32 时钟体系
从图1能够看到APB1总线挂接了TIM2~4,UART2~2…WWD等设备。然后从图2中能够看到只要外设直接运用了APB1的时钟作为实践时钟,而TIM2~4依据APB1的时钟进行了调整。因而当设备B的PCLK1装备为1/2HCLK时实践上便是将APB1装备为了1/2HCLK,此刻因为APB1的分频系数不为1,因而TIM2~4运用的时钟主动2倍频,实践频率便是HCLK了。因为先2分频再2倍频理论上是和HCLK共同,但电路结构等要素将导致得到的成果和直接赋予HCLK不彻底共同,导致通讯不安稳。终究经过调整A设备的PCLK1也为1/2HCLK,能够安稳通讯。