stm32 定时器控制LED灯
单片机源程序如下:
- #include "stm32f10x.h"
- void init_led(void);
- void delay();
- void Delay_us(__IO u32 nTime);
- void SysTick_init(void);
- void TimingDelay_Decrement(void);
- static __IO u32 TimingDelay;
- int main(void)
- {
- init_led();
- SysTick_init() ;
- while(1)
- {
- GPIO_ResetBits (GPIOC,GPIO_Pin_4);
- GPIO_SetBits (GPIOC,GPIO_Pin_5);
- GPIO_SetBits (GPIOB,GPIO_Pin_0);
- GPIO_SetBits (GPIOB,GPIO_Pin_1);
- delay(50);
- // Delay_us(1000);
- GPIO_ResetBits (GPIOC,GPIO_Pin_5);
- GPIO_SetBits (GPIOC,GPIO_Pin_4);
- GPIO_SetBits (GPIOB,GPIO_Pin_0);
- GPIO_SetBits (GPIOB,GPIO_Pin_1);
- delay(50);
- // Delay_us(1000);
- GPIO_ResetBits (GPIOB,GPIO_Pin_0);
- GPIO_SetBits (GPIOC,GPIO_Pin_4);
- GPIO_SetBits (GPIOC,GPIO_Pin_5);
- GPIO_SetBits (GPIOB,GPIO_Pin_1);
- delay(50);
- // Delay_us(1000);
- GPIO_ResetBits (GPIOB,GPIO_Pin_1);
- GPIO_SetBits (GPIOC,GPIO_Pin_4);
- GPIO_SetBits (GPIOC,GPIO_Pin_5);
- GPIO_SetBits (GPIOB,GPIO_Pin_0);
- delay(50);
- // Delay_us(1000);
- }
- }
- void init_led(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB, ENABLE );
- GPIO_InitStructure.GPIO_Pin= GPIO_Pin_4|GPIO_Pin_5;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
- GPIO_Init (GPIOC,&GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin= GPIO_Pin_0|GPIO_Pin_1;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
- GPIO_Init (GPIOB,&GPIO_InitStructure);
- }
- void delay(int n)
- {
- int i,j;
- for(i=0;i<n;i++)
- for(j=0;j<5000;j++);
- }
-
- void SysTick_init(void)
- {
- if (SysTick_Config(SystemCoreClock / 1000))
- {
- while (1);
- }
- }
- void Delay_us(__IO u32 nTime)
- {
- TimingDelay = nTime;
- while(TimingDelay != 0);
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
stm32-time_led.rar
(285.37 KB, 下载次数: 25)
|