⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blinky.c

📁 stm32初级例程
💻 C
字号:
/**************************************************************
**  精英STM32开发板
**  版本:V1.0
**  功能:LED循环闪烁
***************************************************************/

#include <stdio.h>
#include <stm32f10x_lib.h>                        // STM32F10x Library Definitions
#include "STM32_Init.h"                           // STM32 Initialization

#define u16  unsigned short
#define u32  unsigned long

//LED循环闪烁
void LedFlash(void)
{
  static u16 leds = 0x01;
  u32 temp;
    
    //先读出PC端口状态
    temp = GPIOC->ODR;
    
    //先屏蔽掉PC0~PC2
    temp |= 0x00000007;
    
    //重新设置PC0~PC2输出状态,IO输出低电平点亮LED
    GPIOC->ODR = temp&(~(leds));
    leds <<= 1;
    if ( (leds&0x0f) == 0)
	     leds = 0x01;
}

//软件延时程序,不是精确的延时
void Delay(u32 time)
{u32 i,j;
  
	for(j=0; j<time; j++)
	{
	   for(i=0;i<12000;i++);
	}
}

/*----------------------------------------------------------------------------
  MAIN function
 *----------------------------------------------------------------------------*/
int main (void) 
{
  stm32_Init ();// STM32 初始化
  
  //关闭所有LED
  GPIOC->ODR |= 0x00000F00;
  Delay(20);
  
  while (1) 
  {              
     Delay(50);
	   
	   //循环显示1位LED
	   LedFlash();
	   
	   Delay(50);
	   
	   //关闭所有LED
	   GPIOC->ODR |= 0x00000007; 
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -