打印

stm32学习LED控制

[复制链接]
1582|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaochy1126|  楼主 | 2012-5-6 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 gaochy1126 于 2012-5-6 19:35 编辑

#include "stm32f10x.h"
#include "stm32_eval.h"
#include "stm32f10x_conf.h"
GPIO_InitTypeDef GPIO_InitStructure;//GPIO结构体
void RCC_Configuration(void)//RCC初始化
{  
  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)
  {
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    /* Flash 2 wait state */
    FLASH_SetLatency(FLASH_Latency_2);
  
    /* HCLK = SYSCLK */
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
  
    /* PCLK2 = HCLK */
    RCC_PCLK2Config(RCC_HCLK_Div1);
    /* PCLK1 = HCLK/2 */
    RCC_PCLK1Config(RCC_HCLK_Div2);
    /* PLLCLK = 8MHz * 9 = 72 MHz */
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
    /* 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)
    {
    }
  }
}
void NVIC_Configuration(void)
{
#ifdef  VECT_TAB_RAM  
  /* Set the Vector Table base location at 0x20000000 */
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
#endif
}
void my_GPIO_Init(void)初始化GPIO
{
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);
  GPIO_InitStructure.GPIO_Pin= GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_5 ;
  GPIO_InitStructure.GPIO_Speed =GPIO_Speed_10MHz;
  GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
  
  //GPIO_Init(GPIOC,&GPIO_InitStructure);
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  
  
  

}
void delay()
{
  unsigned int x,y;
  for(x=0;x<1000;x++)
    for(y=0;y<1000;y++);
}
void main(void)
{
  char i;
  RCC_Configuration();
  NVIC_Configuration();
  my_GPIO_Init();
  GPIO_SetBits(GPIOC,GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_5);
  delay();
  GPIO_ResetBits(GPIOC,GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_5);
  delay();
  while(1)
  {
      for(i=0;i<3;i++)
      {
        GPIO_ResetBits(GPIOC,GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_5);LED灯全灭
        GPIO_WriteBit(GPIOC,0x01<<(i+3),Bit_SET);
点亮一个led左移一个
        delay();
      }
  }
  
}
沙发
logokfu| | 2012-5-6 18:47 | 只看该作者
什么意思这个

使用特权

评论回复
板凳
程序会不会| | 2012-5-6 19:29 | 只看该作者
这是啥意思?做教材??

使用特权

评论回复
地板
gaochy1126|  楼主 | 2012-5-6 19:31 | 只看该作者
自己学习中! 3# 程序会不会

使用特权

评论回复
5
huangfeng33| | 2012-5-6 23:05 | 只看该作者
我也搞不懂,呵呵,详细的说明一下。

使用特权

评论回复
6
probug| | 2012-5-7 15:52 | 只看该作者
:dizzy:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1050

主题

11299

帖子

26

粉丝