EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STM32学习经验总结
{5 H, s) A L" P$ k+ S" S
- x$ I- E9 c4 `8 G" j! X( {, @& G8 `( q
1. 今天把普中开发板上的RS232芯片烧坏了,所以接下来要完成stlink的使用,来下载程序,同时也尝试调试程序,也算是被逼的去学一个很有用的工具,本来我都不想学stlink的。 2. 先学习一下STM32的定时器,过程中,加入stlink的下载和调试。 3. 定时器:STM32分高级定时器(TIM1和TIM8),通用定时器(TIM2-5),基本定时器(TIM6,7)。 4. 通用定时器(TIM2-5):1)位于低速APB1总线上。2)预分频:将计数器时钟频率降低。3)各个通用定时器之间是完全独立的。4)向上计数:从0到加载值,其他类似。5)定时器的时钟来源,可以来源于内部的APB1时钟倍频提供,这是时钟来源之一,但是用的比较多,也比较简单。 5. 通用定时器工作过程,只要有印象就可以,在配置的时候知道在配置什么。 6. 这是时钟的计算方法,其中APB1的时钟来源于AHB,如果APB1 = AHB,也就是APB1 = 1 * AHB,那么,此时的CK_INT = APB1,而如果APB1 = AHB / 2,那么这时候CK_INT = 2 * APB1的时钟,得到定时器的原始时钟。 7. 溢出时间 Tout = (ARR + 1)*(PSC+1) / TCLK,就是Tclk /(PSC+1)的倒数,得到原始时钟被分频后的频率,倒数就是时钟周期,那么再乘以重装值,就得到了溢出时间。一般时钟TCLK为72MHz。 8. 现在为战舰开发板,LED0->PB5红色 LED1->PE5蓝色 9. 注意:在要使用相应的库函数的时候,需要添加库函数的.c文件到FWLIB中,但是在使用template工程模板的时候不用考虑,已经全部加载进去了,我们只要写自己的功能函数就可以。 10. 定时器初始化步骤:1)使能定时器时钟APB1。2)初始化定时器,配置ARR,PSC,以及计数方式。3)使能定时器中断,配置NVIC,不要忘了在主函数中加入设置中断优先级分组的一句!4)使能定时器自身。5)编写中断服务函数。具体参数配置见功能函数中注释。 11. 注:电平的翻转,好像可以使用~ 或者 !实现。 ———————————— 5 Q, ]0 U* ]* I% T! b
|