首页 > 代码库 > 点亮LED(库函数实现)

点亮LED(库函数实现)

本次测试采用的芯片是STM32F103CB

我的开发板如下:

此开发板有8个led,分别为D11,D12,D13,D14,D15,D16,D17,D18。查询核心板的电路图后知道其对应芯片的控制引脚为P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,P0.8。

现在开始测试点亮D11。主要源代码如下:

1 //main.c2 #include "pbdata.h"3 #include "led.h"4 5 int main(void)6 {7         led_init();8         led_setBit();9 }
1 //pbdata.h2 #ifndef _pbdata_H3 #define _pbdata_H4 5 #include "stm32f10x.h"6 void delay(u32 nCount);7 8 #endif
1 //pbdata.c2 #include "pbdata.h"3 4 void delay(u32 nCount)5 {6     for(;nCount != 0;nCount--);7 }
 1 //led.h 2 #ifndef _LED_H 3 #define _LED_H 4  5 #define GPIO_Pin_x GPIO_Pin_8 6 #define GPIO_LED GPIOB 7  8 void led_init(void); 9 void led_setBit(void);10 11 #endif
 1 //led.c 2 #include "led.h" 3 #include "pbdata.h" 4  5 void led_init(void) 6 { 7     GPIO_InitTypeDef GPIO_InitStructure; 8  9     SystemInit();  /*设置系统时钟*/10 11     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_x;12     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;13     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;14 15     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);/*打开LED使用的GPIO的时钟使能*/16     GPIO_Init(GPIO_LED,&GPIO_InitStructure);17 }18 19 void led_setBit(void)20 {21     while(1)22     {23     GPIO_SetBits(GPIO_LED,GPIO_Pin_x);  //set 124     delay(6000000);25     GPIO_ResetBits(GPIO_LED,GPIO_Pin_x);26     delay(6000000);27     }28 }

 

                                          寄存器版后续更新中...

2014-08-19 01:30:14