實驗現(xiàn)象:LED一亮一滅閃爍
在main函數(shù)中改變比較寄存器的值
/****************************************************************************************
*函 數(shù) 名:bsp_InitTIM11
*函數(shù)功能:初始化IO 和定時器11
*形 參:arr重裝載寄存器的值 psc預分頻
*返 回 值:無
*****************************************************************************************/
void bsp_InitTIM11(uint16_t arr,uint16_t psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);/*使能GPIOF時鐘*/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM11,ENABLE);/*使能定時器11時鐘*/
GPIO_PinAFConfig(GPIOF,GPIO_PinSource7,GPIO_AF_TIM11);/*復用*/
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;/*復用*/
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;/*推挽輸出*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;/*PF7*/
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;/*上拉*/
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/**/
GPIO_Init(GPIOF,&GPIO_InitStructure);/*初始化IO*/
TIM_TimeBaseInitStructure.TIM_Period = arr;/*自動重裝載*/
TIM_TimeBaseInitStructure.TIM_Prescaler = psc;/*預分頻*/
TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;/*時鐘分頻*/
TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;/*向上計數(shù)*/
TIM_TimeBaseInit(TIM11,&TIM_TimeBaseInitStructure);/*初始化*/
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;/*PWM模式*/
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;/*輸出*/
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;/*起始是低*/
TIM_OC1Init(TIM11,&TIM_OCInitStructure);
TIM_OC1PreloadConfig(TIM11,TIM_OCPreload_Enable);/*輸出比較預裝載使能*/
TIM_ARRPreloadConfig(TIM11,ENABLE);/*自動重載預裝載使能*/
TIM_Cmd(TIM11,ENABLE);/*計數(shù)使能*/
}
/*
*********************************************************************************************************
* 函 數(shù) 名: main
* 功能說明: c程序入口
* 形 參:無
* 返 回 值: 錯誤代碼(無需處理)
*********************************************************************************************************
*/
int main(void)
{
/*
ST固件庫中的啟動文件已經(jīng)執(zhí)行了 SystemInit() 函數(shù),該函數(shù)在 system_stm32f4xx.c 文件,主要功能是
配置CPU系統(tǒng)的時鐘,內(nèi)部Flash訪問時序,配置FSMC用于外部SRAM
*/
bsp_Init();//初始化定時器
/* 進入主程序循環(huán)體 */
while (1)
{
bsp_DelayMS(1000);
TIM_SetCompare1(TIM11,450);
bsp_DelayMS(1000);
TIM_SetCompare1(TIM11,10);
}
}