摘要: 【问题】STM32F103的APB1最大总线时钟是AHB总线时钟的1/2,最大为36MHz,在用ST的库函数(v2.0)的时候,TIM2(普通定时器)的时钟频率为72MHz,不知道原因何在?【问题分析】STM32中有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图:从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分。下面以定时器 阅读全文
posted @ 2012-03-10 17:41 mfditxkj 阅读(12776) 评论(0) 推荐(2) 编辑
摘要: 这几天要写好一个上位机的程序,因为之前的VC只停留在理论阶段,所以今天写的时候感觉困难重重,还好有MSDN+网络,碰到的问题都能解决,只是会耗费时间长一点,知识是靠慢慢积累的,没关系,干活的时候做个记录,常翻阅,多思考,这次一定要搞定VC,会一种上位机编程可以给工作带来很大的方便的。 阅读全文
posted @ 2011-12-28 00:54 mfditxkj 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 判断按键的上升沿或者下降沿,自带消抖功能,很好用。具体方法为定义两个变量PreVal,CurVal来记录按键IO的电平值,在定时器中断中加入如下代码:Interrupt_Process(){ static PreVal=0,CurVal=0; CurVal=KeyIO; if((!CurVal)&&PreVal) //检测下降沿IsKeyPressed=1; PreValence=CurVal;}定时器的中断间隔一般取50ms至100ms,具体可以实验得出。 阅读全文
posted @ 2011-12-11 23:23 mfditxkj 阅读(799) 评论(0) 推荐(0) 编辑
摘要: STM32的定时器是个强大的模块,定时器使用的频率也是很高的,定时器可以做一些基本的定时,还可以做PWM输出或者输入捕获功能。时钟源问题:名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在APB1总线上。其中TIM1&TIM8称为高级控制定时器(advanced control timer).他们所在的APB2总线也比APB1总线要好。APB2可以工作在72MHz下,而APB1最大是36MHz。定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器。下面以定时器2~7的时钟说明这个倍频器的作用:当APB1的预分 阅读全文
posted @ 2011-12-04 18:40 mfditxkj 阅读(29459) 评论(1) 推荐(3) 编辑
摘要: 每一次画板子都会有新的收获,在越来越熟悉这个软件的同时,也感觉到了这个软件的博大精深。自己的记性毕竟不是特别好,遇到最囧的事情经常是被以前遇到过并且解决掉的问题所绊住,所以把每一次画板子中碰到问题及解决方法,自己学会的一些小技巧,还有一些心得体会写下来,真的很有必要。一.快捷键PCB界面下的一些操作: SHIFT+W 实时改变线宽 SHIFT+V 实时改变过孔大小 SHIFT+R 在push,ignore,walk around间切换 2 切换到2D视图 3 切换到3D视图 EOS 设置原点 ... 阅读全文
posted @ 2011-11-28 00:20 mfditxkj 阅读(3239) 评论(0) 推荐(0) 编辑