原创 STM32 例程 闪灯程序(GPIO应用)

2010-5-25 10:18 4762 9 10 分类: MCU/ 嵌入式

可以到"单片研习-STM32"下载该工程,链接:http://group.ednchina.com/2415/


例程名:【助学例程1】stm32点灯程序


 


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



/**********************************************************************
* 名    称:Delay()
* 功    能:延时
* 入口参数:cnt
* 出口参数:
-----------------------------------------------------------------------
* 说明:
***********************************************************************/
void Delay(vu16 cnt) {
uint16 i,j;
for (i=0;i<cnt;i++)
{ for (j=0;j<1000;j++)
  { }
 }
}



/**********************************************************************
* 名    称:RCC_Configuration()
* 功    能:配置时钟
* 入口参数:
* 出口参数:
-----------------------------------------------------------------------
* 说明:使用库函数
***********************************************************************/
void RCC_Configuration(void)
{
    ErrorStatus HSEStartUpStatus;


    //使能外部晶振
    RCC_HSEConfig(RCC_HSE_ON);
    //等待外部晶振稳定
    HSEStartUpStatus = RCC_WaitForHSEStartUp();
    //如果外部晶振启动成功,则进行下一步操作
    if(HSEStartUpStatus==SUCCESS)
    {
        //设置HCLK(AHB时钟)=SYSCLK
        RCC_HCLKConfig(RCC_SYSCLK_Div1);


        //PCLK1(APB1) = HCLK/2
        RCC_PCLK1Config(RCC_HCLK_Div2);


        //PCLK2(APB2) = HCLK
        RCC_PCLK2Config(RCC_HCLK_Div1);
       
 
        RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_4);
        //启动PLL
        RCC_PLLCmd(ENABLE);
        //等待PLL稳定
        while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
        //系统时钟SYSCLK来自PLL输出
        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
        //切换时钟后等待系统时钟稳定
        while(RCC_GetSYSCLKSource()!=0x08); 
     }
   /* RCC system reset(for debug purpose) */


  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //给GPIOA提供时钟


}



/**********************************************************************
* 名    称:GPIO_Configuration()
* 功    能:配置输入输出
* 入口参数:
* 出口参数:
-----------------------------------------------------------------------
* 说明:使用库函数,配置IO口
***********************************************************************/
 void GPIO_Configuration(void)
 {


  GPIO_InitTypeDef  GPIO_InitStructure;



  /*设置PA1为输出*/
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_1;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);


 }



/**********************************************************************
* 名    称:main()
* 功    能:主函数
* 入口参数:
* 出口参数:
-----------------------------------------------------------------------
* 说明:让LED灯闪烁
***********************************************************************/
int main (void)
{


 RCC_Configuration();  //配置时钟                     
 GPIO_Configuration(); //配置IO口


 while(1)
 {
  GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)1);//置1
  Delay(1000);
  GPIO_WriteBit(GPIOA, GPIO_Pin_1,(BitAction)0);//置0
  Delay(1000);
  }
 }

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户305449 2011-3-14 16:49

快乐就好 都不悲哀

shaoziyang 2011-2-14 10:02

有目标的人就没有悲哀,没有目标才是真正的悲哀

用户120337 2011-2-5 21:27

“何不把悲哀感觉假设是来自你虚构。”——《富士山下》

用户328127 2010-9-8 13:24

好程序,经典!
相关推荐阅读
用户158589 2010-05-25 13:42
STM32系列产品编号信息
STM32系列产品编号信息 每种STM32的产品都由16个字母或数字构成的编号标示,用户向ST订货时必须使用这个编号指定需要的产品。这16个字符分为8个部分,下面通过一个例子说明它们的意义: STM3...
用户158589 2010-05-25 10:29
STM32 例程 外部中断程序 (外部中断应用)
  可以到"单片研习-STM32"下载该工程,链接:http://group.ednchina.com/2415/例程名:【助学例程2】stm32外部中断例程 /*******************...
用户158589 2010-04-02 08:53
电快速瞬变脉冲群抗扰度测试及对策探讨
电快速瞬变脉冲群抗扰度测试及对策 探讨<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />...
用户158589 2010-03-05 08:42
STM32最小系统上做第一个例程前准备工作
Stm32最小系统的的硬件已经制作完毕,开始进入调试阶段。在调试之前我们得做一下准备工作。1、  集成开发环境的选择stm32的集成开发环境在国内比较流行的主要有:ARM公司的MDK和IAR公司的EW...
用户158589 2010-03-05 08:40
我与单片机
    我自以为自己是一个踏实的人,因为我做每一件事都是循序渐进,持之以恒。    其实做每一件事都应该这样,而学习单片机更是需要这种精神。单片机开发是一个很系统的职业,通常是软硬兼搞,这就需要开发者...
EE直播间
更多
我要评论
1
9
关闭 站长推荐上一条 /3 下一条