原创 STM32的GPIO管脚试验_连载1

2008-7-21 11:29 3787 1 1 分类: MCU/ 嵌入式
#include <stm32f10x_lib.h>
#include "STM32_Init.h"
#define LED1 (1<<4)
#define LED2 (1<<5)
#define LED3 (1<<6)
#define LED4 (1<<7)
#define LED (LED1 |LED2 |LED3 |LED4)
#define KEY2 (1<<3)
#define KEY3 (1<<4)
int main(void)
{
  int i,j;
  unsigned short kk;
  stm32_Init();
  //GPIOC->ODR = LED1;
  while(1)
  {
    for(i=0;i<1000;i++)
        for(j=0;j<1000;j++)
        GPIOC->ODR |= LED1;
    for(i=0;i<1000;i++)
        for(j=0;j<1000;j++)
        GPIOC->ODR |= LED2;
    for(i=0;i<1000;i++)
        for(j=0;j<1000;j++)
        GPIOC->ODR |= LED3;
    for(i=0;i<1000;i++)
        for(j=0;j<1000;j++)
        GPIOC->ODR |= LED4;
    for(i=0;i<1000;i++)
        for(j=0;j<1000;j++)
        GPIOC->ODR &= ~(LED);
       
    kk=GPIOD->IDR;
    while((kk&KEY2)==0)
    {
        GPIOC->ODR |= LED1|LED3;
        for(i=0;i<1000;i++)
          for(j=0;j<1000;j++);
        GPIOC->ODR &= ~(LED);
        kk=GPIOD->IDR;
        for(i=0;i<1000;i++)
          for(j=0;j<1000;j++)
            ;
    }
    while((kk&KEY3)==0)
    {
        GPIOC->ODR |= LED2|LED4;
        for(i=0;i<1000;i++)
          for(j=0;j<1000;j++);   
          GPIOC->ODR &= ~(LED);
          kk=GPIOD->IDR;
        for(i=0;i<1000;i++)
          for(j=0;j<1000;j++)
            ;
    }
   
  }
}

目标:学习gpio使用,控制4个led完成跑马灯,在key2按下时,led1  led3闪烁,在按下key3是led2  led4闪烁。
问题:1〉开始只将STM32_Init.c从keil的模板工程里靠了过来,忽略了STM32_Init.h,所以编译没有通过。
      2〉STM32_Reg.h不是系统自带的,需要从样板工程拷贝过来。
     工程文件点击下载




PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
1
关闭 站长推荐上一条 /3 下一条