日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]/**說(shuō)明:*PA0:KEY1;PA1:KEY2;*PA2:LED1;PA3:LED2;*PA9:USART1_TX;PA10:USART1_RX*/#include"stm32f10x.h"#include"stm32f10x_rcc.h"#include"stm32f10x_gpio.h"#include"stm32f10x_tim.h"#include"stm32f10x_pwr.h"

/*

*說(shuō)明:

*PA0:KEY1;PA1:KEY2;

*PA2:LED1;PA3:LED2;

*PA9:USART1_TX;PA10:USART1_RX

*/

#include"stm32f10x.h"

#include"stm32f10x_rcc.h"

#include"stm32f10x_gpio.h"

#include"stm32f10x_tim.h"

#include"stm32f10x_pwr.h"

#include"stm32f10x_exti.h"

#include"system_stm32f10x.h"

#include"misc.h"

voidRCC_Configuration(void);

voidGPIO_Configuration(void);

voidTIM2_Configuration(void);

voiddelay_ms(u16time);

intmain()

{

u8led_fx=1;

u16led_dt=0;

RCC_Configuration();

GPIO_Configuration();

TIM2_Configuration();

while(1)

{

delay_ms(10);

if(led_fx==1)

{

led_dt++;

}else{

led_dt--;

}

if(led_dt>100)led_fx=0;//可以和初始值一樣

if(led_dt==0)led_fx=1;

TIM_SetCompare3(TIM2,led_dt);//通道3沒(méi)有重影像是PA2對(duì)應(yīng)LED1

TIM_SetCompare4(TIM2,led_dt);//通道4沒(méi)有重影像是PA3對(duì)應(yīng)LED2

}

}

voidRCC_Configuration(void)

{

SystemInit();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

//GPIO_AFIODeInit();和下面相同效果,可以查看源碼證明

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

}

voidGPIO_Configuration(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

//GPIO_PinRemapConfig(GPIO_PartialRemap2_TIM2,ENABLE);//端口映射函數(shù)

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2|GPIO_Pin_3;//GPIO_Pin_3對(duì)應(yīng)channel3,主函數(shù)改為:TIM_SetCompare3

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_Init(GPIOA,&GPIO_InitStructure);

}

voidTIM2_Configuration(void)

{

TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;

TIM_OCInitTypeDefTIM_OCInitStructure;

TIM_DeInit(TIM2);

TIM_InternalClockConfig(TIM2);

//定時(shí)器初始化

TIM_TimeBaseStructure.TIM_Period=100-1;//初始值是100,2MHz=2000KHz,2MHz/100=0.02MHz,所有周期T=1/0.02MHz=50us,示波器顯示周期應(yīng)該為50us

TIM_TimeBaseStructure.TIM_Prescaler=36-1;//36倍分頻,72MHz/36=2MHz

TIM_TimeBaseStructure.TIM_ClockDivision=0;

TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;

TIM_TimeBaseStructure.TIM_RepetitionCounter=0;

TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);

//PWM初始化

TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;

TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;

TIM_OCInitStructure.TIM_Pulse=50;//占空比值是50,所以占空比是:50/100=50%

TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;

TIM_OC3Init(TIM2,&TIM_OCInitStructure);

TIM_OCInitStructure.TIM_Pulse=20;

TIM_OC4Init(TIM2,&TIM_OCInitStructure);

//TIM_OC3PreloadConfig(TIM2,TIM_OCPreload_Enable);

//TIM_ARRPreloadConfig(TIM2,ENABLE);

TIM_Cmd(TIM2,ENABLE);

TIM_CtrlPWMOutputs(TIM2,ENABLE);

}

voiddelay_ms(u16time)

{

u16i=0;

while(time--)

{

i=12000;

while(i--);

}

}


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉