参考资料:
(1) 单片机原理与应用(第二版) 张毅刚版 P36
(2) STM32硬件入门
(3) STM32 F103 中文资料
(4) STM32 函数说明
(5) STM32电路图
如图(注意STM32的电源电压为3.3V而不是5V)
RTS和DTR配置的晶振为12MHz 。这个晶振的设计是为了满足STM的ISP下载使用。
HSE这个4至16MHz的外部晶振的优点在于能够产生非常精确的主时钟(HSE晶体)【2】。
时钟振荡周期T = 1/8MHz .
for(; nCount != 0; nCount--); for循环,翻译成汇编指令可知需要执行一次4条指令。
配置系统时钟为 9*PLL,即72MHz。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
上面的计算方式固定在了51的思想上。
而STM32有三级流水线,指令周期不定的,ARM给出的是1.25MIPS/MHz,一个平均执行速度。
STM32不像51、AVR那样,每条指令有确切的执行时间,STM32有流水线,遇到跳转的时候会刷新流水线,CPU需要等几个周期
参考一下方法设计精确的延时函数。
http://www.ednchina.com/ART_44856_15_0_OA_6d2a6eec.HTM?jumpto=view_welcomead_1371473958698
备注:
typedef unsigned long u32;
typedef unsigned short u16;
typedef unsigned char u8;