您的位置 首页 软件

STM32学习笔记——体系定时器SysTick的运用

Cortex系统定时器SysTick提供1个24位、降序、零约束、写清除的计数器,具有灵活的控制机制includestm32f10x_libhGPIO_InitTypeDefGPI

//Cortex体系定时器SysTick供给1个24位、降序、零束缚、写铲除的计数器,具有灵敏的操控机制

#include“stm32f10x_lib.h”

GPIO_InitTypeDefGPIO_InitStructure;//界说用于初始化装备GPIO的结构体变量

staticvu32TimingDelay;//界说为volatile类型

ErrorStatusHSEStartUpStatus;//界说枚举类型的过错状况

voidTimingDelay_Decrement(void);

voidRCC_Configuration(void);

voidNVIC_Configuration(void);

voidDelay(vu32nTime);

intmain(void)

{

#ifdefDEBUG

debug();

#endif

RCC_Configuration();//体系时钟装备

NVIC_Configuration();//NVIC装备

//体系默许SysTick是8分频(HCLK/8)当时体系时钟72M的话72/8=9MHZ

SysTick_SetReload(9000);//假如设置9000时,计数到9000时,发生1MS中止

//该函数设置SysTick的重装载值,由于是一个24位的计数器,所以重装载值必须在1到0x00ffffff之间

//敞开SysTick中止

SysTick_ITConfig(ENABLE);//使能或许失能SysTick中止,参数取值有ENABEL或DISABEL

//敞开GPIOB端口使能APB2

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;//选中第6,7,8,9脚

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//GPIO速度为50MHz

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//设为推挽输出形式

GPIO_Init(GPIOB,&GPIO_InitStructure);//用装备好的结构体初始化PB口

GPIO_Write(GPIOB,GPIO_Pin_6|GPIO_Pin_8);//向GPIOB的6,8脚写数据

while(1)

{

GPIO_Write(GPIOB,(u16)~GPIO_ReadOutputData(GPIOB));//GPIOB口状况取反

Delay(500);//延时500MS

GPIO_Write(GPIOB,(u16)~GPIO_ReadOutputData(GPIOB));

Delay(500);//延时500MS

}

}

voidRCC_Configuration(void)

{

//复位RCC外部设备寄存器到默许值

RCC_DeInit();

//翻开外部高速晶振

RCC_HSEConfig(RCC_HSE_ON);

//等候外部高速时钟准备好

HSEStartUpStatus=RCC_WaitForHSEStartUp();

//外部高速时钟现已准别好

if(HSEStartUpStatus==SUCCESS)

{

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

FLASH_SetLatency(FLASH_Latency_2);

//装备AHB(HCLK)时钟=SYSCLK

RCC_HCLKConfig(RCC_SYSCLK_Div1);

//装备APB2(PCLK2)钟=AHB时钟

RCC_PCLK2Config(RCC_HCLK_Div1);

//装备APB1(PCLK1)钟=AHB1/2时钟

RCC_PCLK1Config(RCC_HCLK_Div2);

//装备ADC时钟=PCLK21/4

RCC_ADCCLKConfig(RCC_PCLK2_Div4);

//装备PLL时钟==外部高速晶体时钟*9

RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLL频率为8*9=72MHz

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/256303.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部