良久没有写东西了,作业太忙都快没时刻学习了。今日调试了STM32的守时器功用,STM32守时器比较多,但调试都是相同的,寄存器都是逐个对应的。就拿TIM2举例说明。在网上搜了很多关于守时器的设置,但大多数都是一个版别,并且都是针对库函数操作的,让人看起来一头雾水,关于初学者很是晦气(我也是初学者)。下面我将自己的守时器设置进程逐个记录下来,以供咱们参阅,咱们一起学习……
首要界说守时器头文件,也便是界说寄存器以供操作:
//*************************************************************************
//
// TIM2-Register
//
//*************************************************************************
然后装备守时器TIM2:
void TIM2_Configuration(void)
{
}
注:RCC_APB1ENR,SETENA0前面的文章现已界说过
中止函数处理:
void TIM2_IRQHandler(void)
{
if(TIM1_SR&0x01)
解说:1S中止来一次,向串口发送一字节数据0xAA;
接下来就在main()函数中增加装备守时器就可以了:
int main()
GPIO_PORTB_ODR&=~(1<<5);
}
当然以上TIM2的装备必须在体系(时钟)初始化今后,由于这些外设的作业要有时钟来历的,知道了时钟来历,和频率才干计算出守时的时刻等参数,本程序是根据全部时钟都设置成20M来碑文的。前面的几个初始化函数以及寄存器设置都是调用的前面文章中设置好的。
好了,检查串口(9600),调试成功,1S发送1个0xAA,这样看起来是很简单,但调试的进程是困难的,要一次次的试验,一个寄存器一个寄存器的进行装备,学习原本便是一个缓慢并且艰苦的进程,可是当你看到LED在业绩,串口上收到数据时,说有的支付都是值得的,天道酬勤,全部困难都是纸老虎!