1.STM32F103的系统时钟最高频率是72MHZ
2.STM32F103的定时器TIM 的CNT计数值最大为65535
3.STM32F103的定时器TIM 的预分频 系数 PSC 的数值 = 72M / 定时器计数频率
因为CNT最大值为65535 所以, 这里有个问题, 当定时器计数频率太高的时候, 例如72M的计数频率.
1秒钟最多有72000000个计数, 当计数到65535个的时候是 0.0009102083秒 也就是 1098.65HZ
要想计数到1秒, 必须修改PSC,提高分频系数. 降低定时器计数频率
经过实际测量, STM32F103C8T6 最高输出方波的频率为18mhz. 再往上就无法输出了. 有可能是我这个示波器的问题, 我的是pc虚拟示波器最大才20m的采样频率.
下面列出了表格.
系统时钟频率 | PSC | 定时器计数频率 最高输出方波频率 |
定时器计数频率(MHZ) | 最低输出方波频率 |
72000000 | 0 | 72000000.00 | 72.00 | 1098.65 |
72000000 | 1 | 36000000.00 | 36.00 | 549.32 |
72000000 | 3 | 18000000.00 | 18.00 | 274.66 |
72000000 | 5 | 12000000.00 | 12.00 | 183.11 |
72000000 | 7 | 9000000.00 | 9.00 | 137.33 |
72000000 | 11 | 6000000.00 | 6.00 | 91.55 |
72000000 | 23 | 3000000.00 | 3.00 | 45.78 |
72000000 | 35 | 2000000.00 | 2.00 | 30.52 |
72000000 | 71 | 1000000.00 | 1.00 | 15.26 |
72000000 | 719 | 100000.00 | 0.10 | 1.53 |