**************************
学习参考资料
**************************
主要参考资料:
http://pan.baidu.com/s/1ggdUU#dir/path=%2F%E4%BC%97%E6%83%B3%E7%A7%91%E6%8A%80%2F1.%E5%8D%95%E7%89%87%E6%9C%BA%E3%80%81ARM%E5%BC%80%E5%8F%91%E6%9D%BF%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B%20%E5%88%98%E6%B4%8B%E8%80%81%E5%B8%88%E8%AE%B2%E8%A7%A3%2F2.%20Cortex-M3%20ARM%E5%BC%80%E5%8F%91%E6%9D%BF%28LY-STM32%29%2F1.%E8%AF%BE%E7%A8%8B%20%282014%E7%89%88%E6%9C%AC%29%2F1.%E5%9F%BA%E7%A1%80%E7%AF%87%20%28%E5%85%8D%E8%B4%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B%29
1、众想科技的STM32 公开教程。
2、盘古STM32的源代码组织结构。
3、其它开发板代码或资料。
***************************
之所以选择众想科技的视频和课件作为入门学习首选,不是因为里面的东北口音普通话,而是讲解思路很清晰,重视基础。所以先以 时钟配置开始,这也是大多数开发板资料的软肋。
当然,先放一张著名的图画,
如果第一次接触,肯定很吃力。
STM32系列微控制器中,有5个时钟源:
HSI (High Speed Internal) :高速内部时钟、
HSE (High Speed External):高速外部时钟、
LSI (Low Speed Internal) :低速内部时钟、
LSE(Low Speed External) :低速外部时钟、
PLL(Phase Locked Loop) :锁相环倍频输出。
其中的HSI、HSE、 或PLL可被用来驱动系统时钟。
其中的LSI、LSE作为二级时钟源。
重点放在系统时钟前后联系上,低速时钟暂时忽略。
AHB(Advanced High performance Bus)和APB(Advanced Peripheral Bus ),前者作为系统总线,后者作为外设总线。
系统时钟SYSCLK,它是供STM32中绝大部分部件工作的时钟源。系统时钟可选择为PLL输出、HSI或者HSE。系统时钟最大频率为72MHz,它 通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、4、8、16、64、128、256、512分频。其中AHB分频器输出的时钟送给5 大模块使用:
1、送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、3、4倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器2、3、4使用。
2、送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另一路送给 定时器(Timer)1倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器1使用。
3、送给AHB总线、内核、内存和DMA使用的HCLK时钟。
4、通过8分频后送给Cortex的系统定时器时钟。
5、直接送给Cortex的空闲运行时钟FCLK。
另外,APB2分频器还有一路输出供ADC分频器使用,分频后 送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。
|