打印
[开发工具]

用最新板MDK库玩转智林STM32开发板(之一)用库点亮LED

[复制链接]
1819|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2009-3-26 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
众所周知智林的板子是不用固件库的,本人想用库行不行,昨天一试还真行,且为最新的库,环境为  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压缩,另两个是编译环境的只三个文件就实现了。呵呵



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


相关链接:https://bbs.21ic.com/upfiles/img/20093/20093269741110.rar
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2398

主题

6955

帖子

67

粉丝