小学生
最后登录1970-1-1
在线时间 小时
注册时间2020-10-30
|
//不懂为什么 LED_B(ON) 无效 但LED_B(OFF)有效 以及 给GPIO_PIN 送值的时候 该怎么把三个PIN口的值赋进去
#include "stm32f10x.h"
#include "bsp_led.h"
#include "bsp_key.h"
void Delay(uint32_t count)
{
for(;count!=0;count--);
}
int main(void)
{
//来到这里的时候 系统的时钟已经被配置成72M
LED_GPIO_Config();
KEY_GPIO_Config();
while(1)
{
Delay(0xFFFFF);
LED_B(ON);
// LED_G(OFF);
// LED_R(OFF);
//
// LED_G(OFF);
// LED_B(ON);
// LED_R(OFF);
// Delay(0xFFFFF);
// LED_G(OFF);
// LED_B(OFF);
// LED_R(ON);
//
// if( KEY_scan(KEY_GPIO_PORT,KEY_GPIO_PIN)==KEY_ON)
// {
// LED_G_TOGGLE;
//
// }
}
}
#include "bsp_led.h"
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
//LV
RCC_APB2PeriphClockCmd(LED_GPIO_CLK, ENABLE);
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStruct.GPIO_Pin = LED_G_GPIO_PIN;
GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
}
#ifndef __BSP_LED_H
#define __BSP_LED_H
#include "stm32f10x.h"
#define LED_GPIO_PORT GPIOB
#define LED_GPIO_CLK RCC_APB2Periph_GPIOB
#define LED_R_GPIO_PIN GPIO_Pin_5
#define LED_B_GPIO_PIN GPIO_Pin_1
#define LED_G_GPIO_PIN GPIO_Pin_0
#define ON 1
#define OFF 0
# define LED_G(a) if(a) \
GPIO_ResetBits(LED_GPIO_PORT, LED_G_GPIO_PIN); \
else GPIO_SetBits(LED_GPIO_PORT, LED_G_GPIO_PIN);
# define LED_R(a) if(a) \
GPIO_ResetBits(LED_GPIO_PORT, LED_R_GPIO_PIN); \
else GPIO_SetBits(LED_GPIO_PORT, LED_R_GPIO_PIN);
# define LED_B(a) if(a) \
GPIO_ResetBits(LED_GPIO_PORT, LED_B_GPIO_PIN); \
else GPIO_SetBits(LED_GPIO_PORT, LED_B_GPIO_PIN);
#define LED_G_TOGGLE { LED_GPIO_PORT->ODR ^= LED_G_GPIO_PIN ;}
void LED_GPIO_Config(void);
#endif /*__BSP_LED_H */
|
|