众所周知智林的板子是不用固件库的,本人想用库行不行,昨天一试还真行,且为最新的库,环境为
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
文章评论(0条评论)
登录后参与讨论