找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4024|回复: 1
打印 上一主题 下一主题
收起左侧

首次用stm32实现LED闪烁

[复制链接]
跳转到指定楼层
楼主
ID:60266 发表于 2014-8-18 21:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
通过了近两个星期的的学习,,,终于成功用stm32成功点亮了LED灯,,,这应该是从51单片机跨向ARM的第一步,,,是一个转折点是了解并深入学习更高科技的个人的一次伟大尝试与开端,,,越来越相信通过努力是能收获成功的,,,

#include "stm32f10x_lib.h"
#include"stdio.h"
void delay_ms(unsigned short time)  //延时函数
{
unsigned short i,j;
for(i=0;i<time;i++)
  for(j=0;j<10260;j++);
}
//void USART_configuration(void)     /*USART通信*/
//{   
//  RCC_PCLK2Config(RCC_HCLK_Div1);
//  USART_Initstructure.GPIO_Pin =  GPIO_Pin_0;
//  USART_Initstructure.GPIO_Speed = GPIO_Speed_50MHz ;
//  USART_Initstructure.GPIO_Mode_Out =  GPIO_Mode_Out_PP ;
//  GPIO_Init(GPIOA, &GPIO_InitStructure);
//  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
//  RCC_APB1PeriphClockCmd(RCC_APB1Periph_ALL ,DISABLE );
//  RCC_ClockSecuritySystemCmd(ENABLE);
//  }
void GPIO_configuration(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP ;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}
void RCC_configuration(void)
{          
ErrorStatus HSEStartUpStatus;
       RCC_DeInit();   // 将外设RCC寄存器重设为缺省值
  RCC_HSEConfig(RCC_HSE_ON);  //        设置外部高速晶振(HSE)
  HSEStartUpStatus = RCC_WaitForHSEStartUp();         // 等待HSE起振
  if(HSEStartUpStatus == SUCCESS)
  {
    /* Enable Prefetch Buffer 启用预取缓冲器 */
   FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

   /* Flash 2 wait state FLASH设置2个等待周期*/
   FLASH_SetLatency(FLASH_Latency_2);
/* HCLK(AHB时钟) = SYSCLK 设置AHB时钟*/
   RCC_HCLKConfig(RCC_SYSCLK_Div1);
/*内部时钟不启动*/
       RCC_HSICmd(DISABLE);       
       /* PLLCLK = 8MHz * 9 = 72 MHz 设置时钟为72M,设置PLL时钟源及倍频系数(<=72M)*/          
            RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
/*PLL(锁相环)使能*/
       RCC_PLLCmd(ENABLE);
/*把APB2设置为72MH*/
RCC_PCLK2Config(RCC_HCLK_Div1);
/* Wait till PLL is ready 等待PLL工作稳定*/
   while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
/* Select PLL as system clock source 选择PLL做为系统时钟源*/
   RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
           /* Wait till PLL is used as system clock source 准备就绪,开始干活*/
   while(RCC_GetSYSCLKSource() != 0x08);
  }
}
//USART_InitTypeDef        USART_Initstructure;
//void USART_configuration()
//{
//
// USART_Initstructure.USART_BaudRate = 9600;
// USART_Initstructure.USART_WordLength =  USART_WordLength_8b;
//  USART_InitStructure.USART_StopBits = USART_StopBits_1;
//  }
int main()
{
  RCC_configuration();
  GPIO_configuration();
  while(1)
  {       
    delay_ms(1000);
    GPIO_Write(GPIOA, 0x1111111111111111);
delay_ms(1000);
GPIO_Write(GPIOA,0x0000000000000000);
}
  return(1);
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:44262 发表于 2014-8-22 10:54 来自手机 | 只看该作者
谢谢楼主分享你的成功经验
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表