TA的每日心情 | 奋斗 2023-7-6 08:48 |
---|
签到天数: 169 天 连续签到: 1 天 [LV.7]常住居民III
|
LED的使用就是GPIO电平的变化,那么先看一下原理图
可以看到这几个LED使用到的GPIO口分别是:PB1、PB11、PB14、PB15
自己的头文件
- #define LED3(a) if (a)
- GPIO_SetBits(GPIOB,GPIO_Pin_11);
- else
- GPIO_ResetBits(GPIOB,GPIO_Pin_11)
- #define LED2(a) if (a)
- GPIO_SetBits(GPIOB,GPIO_Pin_14);
- else
- GPIO_ResetBits(GPIOB,GPIO_Pin_14)
-
- #define LED1(a) if (a)
- GPIO_SetBits(GPIOB,GPIO_Pin_15);
- else
- GPIO_ResetBits(GPIOB,GPIO_Pin_15)
- #efine digitalHi(p,i) {p->BSRR=i;}
- #define digitalLo(p,i) {p->BRR =i;}
- #define digitalToggle(p,i) {p->ODR ^=i;}
-
- #define LED1_TOGGLE digitalToggle(GPIOB,GPIO_Pin_15)
- #define LED1_OFF digitalHi(GPIOB,GPIO_Pin_15)
- #define LED1_ON digitalLo(GPIOB,GPIO_Pin_15)
- #define LED2_TOGGLE digitalToggle(GPIOB,GPIO_Pin_14)
- #define LED2_OFF digitalHi(GPIOB,GPIO_Pin_14)
- #define LED2_ON digitalLo(GPIOB,GPIO_Pin_14)
- #define LED3_TOGGLE digitalToggle(GPIOB,GPIO_Pin_11)
- #define LED3_OFF digitalHi(GPIOB,GPIO_Pin_11)
- #define LED3_ON digitalLo(GPIOB,GPIO_Pin_11)
-
- void LED_GPIO_Config(void);
复制代码 main函数
- #include "stm32f10x.h"
- #include "led.h"
- void Delay( unsigned int nCount);
- int main(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
- GPIO_Init(GPIOB, &GPIO_InitStructure);
- GPIO_ResetBits(GPIOB, GPIO_Pin_11|GPIO_Pin_14|GPIO_Pin_15);
- while (1){
- LED1( 1 );
- Delay(100000);
- LED1( 0 );
- LED2( 1 );
- Delay(100000);
- LED2( 0 );
- LED3( 1 );
- Delay(100000);
- LED3( 0 );
- }
- }
-
- void Delay(unsigned int nCount) //简单的延时函数
- {
- for(; nCount != 0; nCount--);
- }
复制代码 但是LED亮的顺序好像不对啊。是不是板子画错了。
|
|