STM32输入捕获模式设置并用DMA接收数据
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机:WIN7
开发环境:MDK4.72
MCU:STM32F103
说明:
项目中需要进行红外学习,于是采用输入捕获取得电平变化时间.并将数据放在DMA中.这样可以避免频繁中断消耗CPU资源.
采用的是PB1脚,对应TIM3的通道4.
源代码:
/********************************************************************** 接口函数:初始化红外学习模块**********************************************************************/void inf_infrared_study_init(void){ //初始化io口 inf_init_io(); //初始化中断 //inf_init_irq(); //初始化定时器 inf_init_timer(); //打开DMA inf_infrared_study_open_dma(1); //打开定时器 inf_infrared_study_open_timer(1);}/********************************************************************** 初始化io口**********************************************************************/static void inf_init_io(void){ //定义IO初始化结构体 GPIO_InitTypeDef GPIO_InitStructure; //初始化时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //管脚初始化 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1; //设置为输入 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //初始化 GPIO_Init(GPIOB, &GPIO_InitStructure); }/**************************************************************