你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 5250|回复: 1

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

[复制链接]

27

主题

403

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-12-6
发表于 2009-4-8 22:37:05 | 显示全部楼层 |阅读模式
 
用最新板MDK库玩转智林STM32众所周知智林的板子是不用固件库的,本人想用库行不行,昨天一试还真行,且为最新的库,环境为
 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                                                 |
|  出始化管脚                                              |
|  因为[url=http://bbs.eeworld.com.cn/thread-74209-1-1.html]开发
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[/url]开发板(之一)-----只写一个文件点亮LED
zl1.JPG
 
YUan.rar (5.03 KB, 下载次数: 15)
回复

使用道具 举报

0

主题

156

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2009-4-13 17:55:57 | 显示全部楼层

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

真的很简洁!多谢!
回复 支持 反对

使用道具 举报

关于 意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
13245底部标题123相同标题
12底部标题123相同标题
33333底部标题123相同序号
3435底部标题-无链接
关注我们
st-img 微信公众号
st-img 手机版