欢迎来到天天文库
浏览记录
ID:38111199
大小:146.52 KB
页数:6页
时间:2019-05-24
《【原创】stm32f407的TIM1的中断和PWM》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、【原创】stm32f407的TIM1的中断和PWM2012-04-2520:24:48分类:stm32字号大中小订阅小枣年糕调试了多半天TIM1的中断和PWM,终于算是调通了。遇到了不少问题,也深入了解了TIM1的配置过程。代码如下:/Copyright(C),2012-2022,yin.FileName:main.cAuthor:ycwVersion:1.0Date:2012.04.25Description:TIM1PWMNVICVersion:V1.0FunctionList:TIM1PWMNVICHisto
2、ry:YCW12/04/251.0buildthismoudle/#includestatic__IOuint32_tTimingDelay;//__IO为volatile的宏定义int8_tLED_Flag=1;//LED灯翻转标志位voidGPIO_Config(void);voidTIM_Config(void);voidNVIC_Config(void);voidDelay(__IOuint32_tnTime);main()
3、{/在主函数main之前通过调用启动代码运行了SystemInit函数,而这个函数位于system_stm32f4xx.c”。程序运行起始于启动文件的第175行(LDRR0,=SystemInit)。sys时钟为HSE频率/PLL_MPLL_N/PLL_P,定义HSE为25M,则sys时钟频率为168M/GPIO_Config();TIM_Config();NVIC_Config();/SystemCoreClock/1000时基为1ms/if(SysTick_Config(SystemCoreClock/1000
4、)){/Captureerror/while(1);}while(1){/产生一个软件中断TIM_GenerateEvent(TIM1,TIM1_UP_TIM10_IRQn);Delay(1000);/if(LED_Flag!=1){GPIO_SetBits(GPIOG,GPIO_Pin_6);//setbits使能IO,当前下指输出(此时为灭)}else{GPIO_ResetBits(GPIOG,GPIO_Pin_6);//Resetbits屏蔽IO,当前下指不输出(此时为亮)}}}/Function:voidG
5、PIO_Config(void)Description:GPIO配置函数Input:无Output:无Return:无/voidGPIO_Config(void){/定义了一个GPIO_InitStructure的结构体,方便一下使用/GPIO_InitTypeDefGPIO_InitStructure;/使能GPIOG时钟(时钟结构参见“stm32图解.pdf”)/RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOGRCC_AHB1Periph_GPIOARCC_AHB1Peri
6、ph_GPIOB,ENABLE);/仅设置结构体中的部分成员:这种情况下,用户应当首先调用函数PPP_SturcInit(..)来初始化变量PPP_InitStructure,然后再修改其中需要修改的成员。这样可以保证其他成员的值(多为缺省值)被正确填入。/GPIO_StructInit(&GPIO_InitStructure);/初始化GPIOG的Pin_6为推挽输出/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;//指定第六引脚GPIO_InitStructure.GPIO_Mo
7、de=GPIO_Mode_OUT;//模式为输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//频率为快速GPIO_Init(GPIOG,&GPIO_InitStructure);//调用IO初始化函数/配置GPIOA_Pin_8,作为TIM1_Channel2PWM输出/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7GPIO_Pin_8GPIO_Pin_10GPIO_Pin_11;//指定复用引脚GPIO_InitStructure.
8、GPIO_Mode=GPIO_Mode_AF;//模式必须为复用!GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//频率为快速GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;//上拉与否对PWM产生无影响GPIO_Init(GPIOA,&GPIO_InitStructure)
此文档下载收益归作者所有