原创 用最新板MDK库玩转智林STM32开发板(之一)-----只写一个文件点亮LED

2009-4-3 08:44 3325 10 10 分类: MCU/ 嵌入式

点击看大图


众所周知智林的板子是不用固件库的,本人想用库行不行,昨天一试还真行,且为最新的库,环境为



RealView MDK 3.40评估版

我只写了一个主程序,main.c 其余两个:一个启动代码,一个是编译过的库文件


程序十分简捷:我根本就没调直接用串口下载一次成功,不亦乐乎!


现把主程序传上来大家来分享:


#include "stm32f10x_lib.h"



/*----------------------------------------------------------*\
 |  RCC_Configuration                                                       |
 |  时钟初始化                                                                 |
 | 一般不用改                                                                  |
 |                                                                                       |
\*----------------------------------------------------------*/



void RCC_Configuration(void)
{
        ErrorStatus HSEStartUpStatus;
        // RCC system reset(for debug purpose)
        RCC_DeInit();


        // Enable HSE
        RCC_HSEConfig(RCC_HSE_ON);


        // Wait till HSE is ready
        HSEStartUpStatus = RCC_WaitForHSEStartUp();


        if(HSEStartUpStatus == SUCCESS)
        {
                // HCLK = SYSCLK
                RCC_HCLKConfig(RCC_SYSCLK_Div1);
 
                // PCLK2 = HCLK
                RCC_PCLK2Config(RCC_HCLK_Div1);


                // PCLK1 = HCLK/2
                RCC_PCLK1Config(RCC_HCLK_Div2);
 
                // Flash 2 wait state
                //FLASH_SetLatency(FLASH_Latency_2);
                FLASH_SetLatency(FLASH_Latency_0);
                //FLASH_SetLatency(FLASH_Latency_1);


               
                // Enable Prefetch Buffer
                FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
               
                // PLLCLK = 8MHz * 2 = 16 MHz
                RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_2);


                // Enable PLL
                RCC_PLLCmd(ENABLE);


                // Wait till PLL is ready
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
                {
                }


                // Select PLL as system clock source
                RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);


                // Wait till PLL is used as system clock source
                while(RCC_GetSYSCLKSource() != 0x08)
                {
                }
               
        }


        // Enable peripheral clocks --------------------------------------------------
}
  
/*----------------------------------------------------------*\
 |  LedInit                                                 |
 |  出始化管脚                                              |
 |  因为开发板LED接在第PB5上,所以初始化PB5                  |
 |                                                          |
\*----------------------------------------------------------*/


void LedInit(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;


        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能外设时钟


        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;          //激活PB5脚
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  //设管脚速率
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //设输出方式
        GPIO_Init(GPIOB, &GPIO_InitStructure);     //管脚B其余默认定义


       


}


/*----------------------------------------------------------*\
 |  Delay                                                   |
 |  延时 Inserts a delay time.                              |
 |  nCount: 延时时间                                        |
 |  nCount: specifies the delay time length.                |
\*----------------------------------------------------------*/
void Delay(vu32 nCount) {
  for(; nCount != 0; nCount--);
  }
/*----------------------------------------------------------*\
 |  Delay                                                   |
 |  延时 Inserts a delay time.                              |
 |  nCount: 延时时间                                        |
 |  nCount: specifies the delay time length.                |
\*----------------------------------------------------------*/
main()
{
 
  RCC_Configuration();
  LedInit();
   while(1)
   {
   GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  Delay(2000000);
  GPIO_SetBits(GPIOB,GPIO_Pin_5);
  Delay(2000000);
    
 }
}


我把HEX文件和原main.c压缩,另两个是编译环境的只三个文件就实现了。呵呵


https://static.assets-stash.eet-china.com/album/old-resources/2009/3/26/b1c37936-3bb8-41ad-aa50-eb65e31c7a84.rar


欢迎大家去我那溜达:http://shop35738797.taobao.com

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条