91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-19
  • 語言: 其他
  • 標簽: STM32??

資源簡介

STM32F103VET6,流水燈,、呼吸燈、小車尋跡、外部中斷、定時器

資源截圖

代碼片段和文件信息

#include?“stm32f10x.h“
#include?“stm32f10x_gpio.h“

void?RCC_Configuration(void);
void?TIM_GPIO_Config(void);
void?PWM_Mode_Config(void);
void?DelayUs(uint16_t?temp);

int?main(void)
{
u8?led_fx=1;//燈亮的方向,有亮到暗,和暗到亮,呼吸燈就是這樣漸變的
u16?led_dt=0;//占空比
RCC_Configuration();
TIM_GPIO_Config();
PWM_Mode_Config();

while(1)
{
DelayUs(12000);
if(led_fx==1)//
{
led_dt++;
}
else{led_dt--;}
if(led_dt>100)//下面程序的定時周期是100,所以led_dt加到100就自減到0,也就是pwm輸出高/低電平持續時間的長短,
led_fx=0;

if(led_dt==0)
led_fx=1;

TIM_SetCompare1(TIM4led_dt);//把led_dt的值送到定時器4的CCR寄存器中改變占空比,就是后面提到的跳變值pulse
}

}

void?TIM_GPIO_Config(void)//配置的是PB6端口的復用推挽輸出,因為輸出PWM波
{

GPIO_InitTypeDef?GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;//復用推挽
GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;

GPIO_Init(GPIOB&GPIO_InitStructure);

}

void?RCC_Configuration(void)
{

SystemInit();//初始化系統時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIOENABLE);?//使能端口B時鐘和復用功能時鐘
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4ENABLE);?//使能定時器時鐘

}

void?PWM_Mode_Config(void)

{

u32?CCR2_Val;
TIM_TimebaseInitTypeDef?TIM_TimebaseStructure;
TIM_OCInitTypeDef?TIM_OCInitStructure;
TIM_TimebaseStructure.TIM_Prescaler?=?1; //預分頻器為1就是定時器的工作頻率為36M,否則(為0或者其他的數時TIMclock=72M/(pres+1))為72M
TIM_TimebaseStructure.TIM_CounterMode?=?TIM_CounterMode_Up;//向上計數
TIM_TimebaseStructure.TIM_Period?=99; //36M/(99+1)=360K?計數值
TIM_TimebaseStructure.TIM_ClockDivision?=?0x0;
TIM_TimebaseInit(TIM4&TIM_TimebaseStructure);
TIM_OCInitStructure.TIM_OCMode?=?TIM_OCMode_PWM1;?//PWM1模式
TIM_OCInitStructure.TIM_OutputState?=?TIM_OutputState_Enable;?//允許輸出
TIM_OCInitStructure.TIM_Pulse?=?CCR2_Val;?//跳變值,當計數器的值小于此值時,輸出電平極性發生跳變,即決定占空比
TIM_OCInitStructure.TIM_OCPolarity?=?TIM_OCPolarity_Low;?//小于設置的跳變值時輸出低電平
TIM_OC1Init(TIM4?&TIM_OCInitStructure);//初始化捕獲比較寄存器
TIM_OC1PreloadConfig(TIM4?TIM_OCPreload_Enable);//使能捕獲比較重裝載
TIM_ARRPreloadConfig(TIM4?ENABLE);//使能重裝載,可以連續輸出
TIM_Cmd(TIM4ENABLE); //使能定時器

}
void?DelayUs(uint16_t?temp)
{
uint16_t?i?=?1;
while(temp--)
{
for(i?=?0;i? }
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2495??2016-12-14?10:24??STM32程序\呼吸燈.c

?????文件???????1617??2016-12-14?10:25??STM32程序\外部中斷.c

?????文件???????1570??2016-12-14?10:25??STM32程序\定時器.c

?????文件???????2544??2016-12-14?10:26??STM32程序\小車循跡.C

?????文件???????7805??2016-12-14?10:37??STM32程序\總程序.c

?????文件???????2016??2016-12-14?10:22??STM32程序\按鍵.c

?????文件???????1650??2016-12-14?10:26??STM32程序\流水燈.c

?????目錄??????????0??2016-12-14?10:37??STM32程序

-----------?---------??----------?-----??----

????????????????19697????????????????????8


評論

共有 條評論